semantik-0.9.5/000775 000000 000000 00000000000 12732552614 013327 5ustar00rootroot000000 000000 semantik-0.9.5/.gitignore000664 000000 000000 00000000044 12732552614 015315 0ustar00rootroot000000 000000 .lock-waf_linux2_build build .waf-* semantik-0.9.5/ChangeLog000664 000000 000000 00000004536 12732552614 015111 0ustar00rootroot000000 000000 Semantik 0.9.5 -------------- * Fix for adding new items with right-click (Issue 53) Semantik 0.9.4 -------------- * Resize class elements * Remember window settings in semantik-d * Minor linear view bug fixes Semantik 0.9.3 -------------- * Generated HTML documents no longer reference pdf files * Save Semantik diagrams on exit * Minor changes in pdflatex documents * New class element in diagrams * New database element in diagrams * Zoom improvements * A few bugfixes Semantik 0.9.2 -------------- * New diagram items: matrix, boundary, class * OpenOffice.org template fixes (Issue 39) * Fix for null bytes inserted through copy-pasting * Removing an item from the linear view no longer causes an assertion (Issue 41) * Build script fix for Python 3 (Semantik still requires Python 2 though) Semantik 0.9.1 -------------- * Svg export * Odt template fixes * Include svg pictures in odt documents * command-line svg export * More reasonable size for the actors head * Prevent the memory corruption when opening the same recent file again * Make the text visible in the odt document created (Issue 27) * fixed the diagram top/bottom alignment function * Copy diagram pictures to clipboard from main window * Copy diagrams to the clipboard Semantik 0.9.0 -------------- * New application for editing and managing diagrams * Enhanced printing system from the menu * Print diagrams from the command-line * Fixed the jitter on the map/diagram areas Semantik 0.8.4 -------------- * Export maps to pdf pictures from the command-line * Color scheme fixes #30 * Null byte fix for text pasted from Chrome #26 Semantik 0.8.3 -------------- * New dialog for exporting the map as a picture with a specific size * More consistent gui elements (dialog buttons, menus) * New UML shapes * Straight arrows on the diagrams Semantik 0.8.2 -------------- * Fixed several crashes * Fixe various LaTeX templates * New actor and usecase elements Semantik 0.8.1 -------------- * Made the gui mode-less * Enabled diagram, image and table export in the beamer template * Fixed the Java applet generator Semantik 0.8.0 -------------- * undo/redo actions * select subtrees Semantik 0.7.3 -------------- * fixed a crash when reordering items in the linear view * enable fullscreen modes for presentation and map views (context menu) * translation to greek by kiolalis * translation to russian alexey kouznetsov semantik-0.9.5/README000664 000000 000000 00000005460 12732552614 014214 0ustar00rootroot000000 000000 Semantik 0.9.5, Thomas Nagy contact: tnagy at waf.io Project page: https://waf.io/semantik.html Source code: https://github.com/ita1024/semantik ----------------------------------------------- 1. Compilation and installation: First, make sure that you have a Linux(tm) system (a *BSD system should do it too) * the KDE4 development packages must be installed (KDE4 >= beta4) * the Qt development packages must be installed (Qt >= 4.3) To compile, run: ./waf configure build A few systems may require different options such as: PYTHON=python2 PYTHON_VERSION=2.7 waf configure build Then run the following installation command as root (important - Semantik will only work if installed): ./waf install The generic command for creating a package is the following (packagers): ./waf configure clean build --prefix=/usr && DESTDIR=$fakeroot ./waf install ----------------------------------------------- 2. Getting started: * double-click to add an item * when a leaf is selected, type 'enter' to start in-place editing, type 'enter' again to save * left,right,up,down keys to navigate in the tree * alt+left,right,up,down keys to move the selection around * double-click on a leaf to add a ramification * double-click on a link to disconnect Getting started with document generators: * look at the scripts in src/templates/ * the naming is used for finding the files Getting started with the diagrams: * right-click to select a component to add * press enter to edit the properties * use the + to start dragging a connection * select a connection and move the points to change its dimensions More information can be found in about->help ----------------------------------------------- 3. Document generators: * Be careful with documents that you have not created yourself, there are no security restrictions at the moment * The document generation is performed in two steps: variable substitution and preprocessing * Variables in the form @var_name@ are replaced by the corresponding document variables * The core of the document is a variable itself * A c-like preprocessor is then run on the resulting document, using (nested) conditionals such as: #if 0, #if !0, #ifdef var, #endif (the #elif construct is not supported yet) * External viewers can be used, from the 'variables' panel, add code in the form 'command_'+template_name=command_line, for example: command_html=kfmclient newTab %s command_odt=oowriter %s command_s5=firefox %s this is only necessary for documents that do not have a KDE mapping for opening them * LaTeX commands can be inserted by using all_latex=1 It is also possible to export maps from the command-line (png or pdf): semantik foo.sem -o foo.pdf Diagrams can be exported in a similar fashion: semantik-d diag.semd -o foo.pdf ----------------------------------------------- 4. License: GPL V3 semantik-0.9.5/TODO000664 000000 000000 00000000422 12732552614 014015 0ustar00rootroot000000 000000 Arbitrary SVG shapes z-index in diagrams svg export? crossing diagram arrows for the one with higher z-index s5 default picture size? crash: resize a box, unselect the diagram, then undo? display pictures on the map... Import kdissert weak links Serialize undo operations semantik-0.9.5/example.sem000664 000000 000000 00000012573 12732552614 015500 0ustar00rootroot000000 000000 'ySexample.sem]ۏ6뗿 Ki\&hl`E%$O%[3bڕ 3MO\x2Mِmmc:Fve%NΓ;SI]_`.ɖydj.~DY|<|\OU|U5l.@<g&ژl S}IVqv:/?MT#ohiW:O75moQ~k{]ıɞTk1oH'vyQ$ͧ$U3=6RvEz}qqe'Ӽ)n=%\_wҔ] 5Y tcrG&)j^E~mGo?M܁6o6o[y:ۨj__\R/}' wEv͵Yvon NV߬<^S*KSUo/5JM~?_k<9~se}7D  ] {٬hZCMp6L5H66@ sg|`,ZE&Ur;@a=+D CBq_=|Y(QabރhYyH[! ȰB*c !~7*@~7{]{z}GMz"Yx]EhGv̛qh3F~0tr@ v& lo+GEQѳ0A K GrPn)? #ry`si}tjV"{wqr/$mU` H#V:d7eOM6gg[RNo4Y}]1uveױًڷ ; sS&vVVNoֽ] _bOdȽ ]7I`4@}8G. `3N6bh*ݏ}i?:KQ V&r/1Cȵoz">QVFKK:W9j{+R& }oLYFVsP#P.# 1l7#S]Utz1W¡B]? r%\lUXM4,py'Ǡc@w!vM1ᇠ "erBx/Q54 nC7]bqK&3UDÄr6qAY4Pf9mȉ43}]:ЩNi04y4z^sL)䬏ˤC6nmbxDY 6ßD jGi"a0yWvA`p0]RT&+5/qVGn2 \[v+43`t 9I(B "@qx0d (QC6"y=y'qHdAZ`7rGt.jeqܙ;{r Q蹽bXJHhU0 EޜVM=vgX(ga wC_śv'$,K㨷 hC7;+\o sA{&,7ɑ8_<;Cid$p; =ΑQ ч5ߠk )A6`aJ,di@TդM> z^厠eUBP[4J%ab[Xܕ2b5a-}eHmH\x$JC,uo؄Z>sNmU؜ E@I9ݳdt 7\.f"wcۊR6OB+{ y>wjgeoЩ87% (=C EYWc08q}CЍ߾p@]ˀoIk*DDb050hB!A!&75y,̩)mӚ+Vs)\"w%Xֺx'J w{NxRD䝾x>9Ujl;+D@{SP1;qy${W%r$zɼ>_lA-L@b򆎑*5mY1h™!a+ ޡn#y"ؕg;J ^Z|+;*,vE/_A, \XE~0nij]$Dfy_P23v ;=#>[j}Vg7$Vh1v` gCYtvhg3NXFiH-w,ZYkNE")xFCgҩ#.(3:0 8vfAKr\K4lgvh;DI;\$Vw [Ln븮΀7vDΫ A\Wgc\ QZ([VXw7T&d:o$V9anT٩bWv^~v\>+\rqpSg.A o#ώcnl֍._2\dpۨem$m~tS<7ZCoMvSV**ݽ5g`ľ.cjV{#S$~~&G燧1SD/N$r=ksFHHB9@MUPC6K8 v%sYw`-3:GXΜO[7%EAkC̫lOIoM0QVW/^W# !<2; 2$}vGKrH@hC{+R(~jef^Tg剾dΘt BP88ϲ9Ԁ)gX[m?. 1?mΘ0. 1Ἕoh$5Fv Aڗ.[_e*<9nuώԤqsh;ώ G<躾o^\WΜ E03|#E4kx3Đv Ry?~ ;O -FYk$3$"k'r<߀'#GeM0?orz45PhM}W]]vlDmAI2h.W&KPT=ՃO-OQ$MT/7 U/ SD2A?gSD>ESD9=䪨f]U 8K5$OR$u|Ihn.ÓT1EU=;ь$UOQQCI*I*ƒ3 O #include "con.h" #include class color_scheme // : { public: color_scheme(); QString m_sName; QColor m_oInnerColor; QColor m_oBorderColor; QColor m_oTextColor; }; #endif semantik-0.9.5/src/base/data_item.cpp000664 000000 000000 00000022156 12732552614 017471 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include #include "con.h" #include "sembind.h" #include "sem_mediator.h" #include "data_item.h" node::node() { } node::~node() { while (!m_oChildren.isEmpty()) { m_oChildren.takeFirst(); } } node& node::make_node(const QString& i_sTag, const QXmlAttributes& i_oAttrs) { node l_oNode; m_oChildren.push_back(l_oNode); node &ret = m_oChildren.last(); ret.read_data(i_sTag, i_oAttrs); return ret; } void node::read_data(const QString&, const QXmlAttributes&) { } void node::dump_xml(QStringList & other) { foreach (node n, m_oChildren) { n.dump_xml(other); } } data_item::data_item(sem_mediator *i_oControl, int i_iId) { m_iDataType = VIEW_TEXT; m_iId = i_iId; m_iColor = 0; m_oMediator = i_oControl; m_sSummary = QObject::trUtf8("Empty"); m_sText = ""; m_sComment = ""; m_sDiag = ""; m_sPicLocation = ""; m_sPicCaption = ""; m_sPicComment = ""; m_iDown = NO_ITEM; m_iNumRows = 3; m_iNumCols = 3; m_iPicId = NO_ITEM; m_iObjectWidthHint = 0; m_iObjectHeightHint = 0; m_iYY = m_iXX = -200000.0; m_bSelected = false; m_oDiagramFont.fromString("DejaVu Sans Mono,10,-1,5,50,0,0,0,0,0"); } QPixmap data_item::getPix() { return m_oMediator->getPix(m_iPicId); } QPixmap data_item::getThumb() { return m_oMediator->getThumb(m_iPicId); } color_scheme& data_item::get_color_scheme() { if (m_oMediator->parent_of(m_iId) <= 0) { return m_oMediator->m_oColorSchemes[0]; } if (m_iColor < 0) { return m_oCustom; } if (m_iColor == m_oMediator->m_oColorSchemes.size()) { return m_oCustom; } if (m_iColor > m_oMediator->m_oColorSchemes.size()) { qDebug()<<"invalid index color scheme "<m_oColorSchemes[1]; } return m_oMediator->m_oColorSchemes[m_iColor]; } color_scheme& data_item::get_color_scheme_raw() { if (m_iColor < 0) { return m_oCustom; } if (m_iColor == m_oMediator->m_oColorSchemes.size()) { return m_oCustom; } if (m_iColor > m_oMediator->m_oColorSchemes.size()) { qDebug()<<"invalid index color scheme "<m_oColorSchemes[m_iColor]; } diagram_item::diagram_item() { pen_style = Qt::SolidLine; border_width = 1; } data_box::data_box(int id) : diagram_item(), node() { m_iId = id; m_bIsEnd = false; m_bIsVertical = false; m_iType = data_box::ACTIVITY; m_iWW = 100; m_iHH = 40; color = QColor("#a7e89b"); m_bAbstract = false; m_bStatic = false; } data_box& data_box::operator=(const data_box & i_o) { m_iType = i_o.m_iType; m_iId = i_o.m_iId; m_sText = i_o.m_sText; m_bIsEnd = i_o.m_bIsEnd; m_bIsEnd = i_o.m_bIsEnd; m_bIsVertical = i_o.m_bIsVertical; m_iType = i_o.m_iType; m_iWW = i_o.m_iWW; m_iHH = i_o.m_iHH; color = i_o.color; m_oRowSizes = i_o.m_oRowSizes; m_oColSizes = i_o.m_oColSizes; m_bStatic = i_o.m_bStatic; m_bAbstract = i_o.m_bAbstract; m_sStereotype = i_o.m_sStereotype; m_oMethods = i_o.m_oMethods; m_oAttributes = i_o.m_oAttributes; return *this; } data_box::~data_box() { while (!m_oMethods.isEmpty()) { m_oMethods.takeFirst(); } while (!m_oAttributes.isEmpty()) { m_oAttributes.takeFirst(); } } void data_box::dump_xml(QStringList & i_oS) { i_oS<\n").arg( QString::number(m_iId), bind_node::protectXML(m_sText), QString::number(m_iXX), QString::number(m_iYY), QString::number(m_iWW), QString::number(m_iHH), color.name(), QString::number((int) m_iType), QString(" v=\"%1\" e=\"%2\"").arg( // ugly QString::number((int) m_bIsVertical), QString::number((int) m_bIsEnd) ) ); foreach (int l_i, m_oRowSizes) { i_oS<\n").arg(QString::number(l_i)); } foreach (int l_i, m_oColSizes) { i_oS<\n").arg(QString::number(l_i)); } if (m_iType == data_box::CLASS) { i_oS<\n").arg( bind_node::protectXML(m_sStereotype), QString::number((int) m_bStatic), QString::number((int) m_bAbstract)); foreach (data_box_method l_o, m_oMethods) { l_o.dump_xml(i_oS); } foreach (data_box_attribute l_o, m_oAttributes) { l_o.dump_xml(i_oS); } i_oS<\n"); } //node::dump_xml(i_oS); i_oS<\n"); } void data_box::read_data(const QString& i_sTag, const QXmlAttributes& i_oAttrs) { m_sText = i_oAttrs.value(notr("text")); m_iXX = i_oAttrs.value(notr("x")).toFloat(); m_iYY = i_oAttrs.value(notr("y")).toFloat(); m_iWW = i_oAttrs.value(notr("w")).toFloat(); m_iHH = i_oAttrs.value(notr("h")).toFloat(); m_iType = (data_box::IType) i_oAttrs.value(notr("t")).toInt(); m_bIsVertical = i_oAttrs.value(notr("v")).toInt(); m_bIsEnd = i_oAttrs.value(notr("e")).toInt(); color = QColor(i_oAttrs.value(notr("color"))); // TODO remove in the future... if (m_iType == data_box::ACTIVITY_START) { if (m_iWW > 20 + m_iHH) m_iWW = m_iHH = 20; } } node& data_box::make_node(const QString& i_sName, const QXmlAttributes& i_oAttrs) { if (i_sName == notr("box_row_size")) { int l_iVal = i_oAttrs.value(notr("val")).toInt(); m_oRowSizes.push_back(l_iVal); } else if (i_sName == notr("box_col_size")) { int l_iVal = i_oAttrs.value(notr("val")).toInt(); m_oColSizes.push_back(l_iVal); } else if (i_sName == notr("box_class_method")) { data_box_method l_o; l_o.read_data(i_sName, i_oAttrs); m_oMethods.push_back(l_o); return m_oMethods.last(); } else if (i_sName == notr("box_class_attribute")) { data_box_attribute l_o; l_o.read_data(i_sName, i_oAttrs); m_oAttributes.push_back(l_o); return m_oAttributes.last(); } else if (i_sName == notr("box_class")) { m_bStatic = i_oAttrs.value(notr("static")).toInt(); m_bAbstract = i_oAttrs.value(notr("abstract")).toInt(); m_sStereotype = i_oAttrs.value(notr("stereotype")); } return *this; // return node::make_node(i_sName, i_oAttrs); } void diagram_item::setBorderWidth(int bw) { border_width = bw; } void diagram_item::setPenStyle(Qt::PenStyle st) { pen_style = st; } void diagram_item::setColor(QColor co) { color = co; } data_link::data_link() : diagram_item() { color = QColor(Qt::black); m_iParentPos = NORTH; m_iChildPos = NORTH; m_iLeftArrow = NONE; m_iRightArrow = ASSOCIATION; m_iLineType = ZIGZAG; } void data_link::copy_from(const data_link& i_oLink) { m_sLink = i_oLink.m_sLink; m_sCaption = i_oLink.m_sCaption; m_iParent = i_oLink.m_iParent; m_iChild = i_oLink.m_iChild; m_iParentPos = i_oLink.m_iParentPos; m_iChildPos = i_oLink.m_iChildPos; m_iLineType = i_oLink.m_iLineType; m_oStartPoint = i_oLink.m_oStartPoint; m_oEndPoint = i_oLink.m_oEndPoint; m_oOffsets = i_oLink.m_oOffsets; m_iLeftArrow = i_oLink.m_iLeftArrow; m_iRightArrow = i_oLink.m_iRightArrow; border_width = i_oLink.border_width; pen_style = i_oLink.pen_style; color = i_oLink.color; } bool data_link::equals(const data_link& i_oLink) { if (m_iParent != NO_ITEM) { if (m_iParent != i_oLink.m_iParent || m_iParentPos != i_oLink.m_iParentPos) return false; } else { if (m_oStartPoint != i_oLink.m_oStartPoint) return false; } if (m_iChild != NO_ITEM) { if (m_iChild != i_oLink.m_iChild || m_iChildPos != i_oLink.m_iChildPos) return false; } else { if (m_oEndPoint != i_oLink.m_oEndPoint) return false; } if (m_oOffsets.size() != i_oLink.m_oOffsets.size()) return false; for (int i = 0; i < m_oOffsets.size(); ++i) { if (m_oOffsets.at(i) != i_oLink.m_oOffsets.at(i)) return false; } return true; } void data_box_method::read_data(const QString&i_sName, const QXmlAttributes& i_oAttrs) { Q_ASSERT(i_sName == QString("box_class_method")); m_sText = i_oAttrs.value(notr("text")); m_oVisibility = (visibility::VisibilityType) i_oAttrs.value(notr("visibility")).toInt(); m_bStatic = i_oAttrs.value(notr("static")).toInt(); m_bAbstract = i_oAttrs.value(notr("abstract")).toInt(); } void data_box_method::dump_xml(QStringList &i_oS) { i_oS<\n").arg( bind_node::protectXML(m_sText), QString::number((int) m_oVisibility), QString::number((int) m_bStatic), QString::number((int) m_bAbstract) ); } void data_box_attribute::read_data(const QString& i_sName, const QXmlAttributes& i_oAttrs) { Q_ASSERT(i_sName == QString("box_class_attribute")); m_sText = i_oAttrs.value(notr("text")); m_oVisibility = (visibility::VisibilityType) i_oAttrs.value(notr("visibility")).toInt(); m_bStatic = i_oAttrs.value(notr("static")).toInt(); } void data_box_attribute::dump_xml(QStringList &i_oS) { i_oS<\n").arg( bind_node::protectXML(m_sText), QString::number((int) m_oVisibility), QString::number((int) m_bStatic) ); } /* #include "main.moc" */ semantik-0.9.5/src/base/data_item.h000664 000000 000000 00000010542 12732552614 017132 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef DATA_ITEM_H #define DATA_ITEM_H #include #include #include #include #include #include #include #include #include "color_scheme.h" #include "con.h" class sem_mediator; class node { // so we can read/write a tree of objects public: node(); virtual ~node(); virtual node& make_node(const QString&, const QXmlAttributes&); virtual void read_data(const QString&, const QXmlAttributes&); virtual void dump_xml(QStringList & other); QList m_oChildren; }; class diagram_item { public: diagram_item(); void setBorderWidth(int); void setPenStyle(Qt::PenStyle); void setColor(QColor); int border_width; Qt::PenStyle pen_style; QColor color; }; class data_link : public diagram_item { public: enum Direction { NORTH=1, WEST=2, SOUTH=4, EAST=8, COORD=15 }; enum Arrow { NONE=0, TRIANGLE=1, ASSOCIATION=2, INHERITANCE=3, AGGREGATION=4}; enum LineType {ZIGZAG=0, LINE=1}; data_link(); QString m_sLink; QString m_sCaption; int m_iParent; int m_iChild; int m_iParentPos; int m_iChildPos; Arrow m_iLeftArrow; Arrow m_iRightArrow; LineType m_iLineType; QPoint m_oStartPoint; QPoint m_oEndPoint; QList m_oOffsets; void copy_from(const data_link&); bool equals(const data_link&); }; class visibility { public: enum VisibilityType {PRIVATE=1, PUBLIC=2, PROTECTED=3, PACKAGE=4, DERIVED=5}; static VisibilityType toVisibility(const QString& i_s) { if (i_s == notr("public")) { return PUBLIC; } if (i_s == notr("protected")) { return PROTECTED; } if (i_s == notr("private")) { return PRIVATE; } if (i_s == notr("derived")) { return DERIVED; } return PACKAGE; } }; class data_box_method : public node { public: QString m_sText; visibility::VisibilityType m_oVisibility; bool m_bStatic; bool m_bAbstract; virtual void read_data(const QString&, const QXmlAttributes&); virtual void dump_xml(QStringList & other); }; class data_box_attribute : public node { public: QString m_sText; visibility::VisibilityType m_oVisibility; bool m_bStatic; virtual void read_data(const QString&, const QXmlAttributes&); virtual void dump_xml(QStringList & other); }; class data_box : public diagram_item, public node { public: data_box(int id); ~data_box(); data_box& operator=(const data_box &); int m_iId; QString m_sText; int m_iXX; int m_iYY; int m_iWW; int m_iHH; enum IType { ACTIVITY=1, ACTIVITY_START=2, ACTIVITY_PARALLEL=3, LABEL=4, COMPONENT=5, NODE=6, \ ACTOR=7, USECASE=8, DECISION=9, MATRIX=10, FRAME=11, CLASS=12, CAPTION=13, DATABASE=14}; data_box::IType m_iType; node& make_node(const QString&, const QXmlAttributes&); void read_data(const QString&, const QXmlAttributes&); void dump_xml(QStringList & other); // activity bool m_bIsEnd; // fork bool m_bIsVertical; // matrix QList m_oRowSizes; QList m_oColSizes; // class bool m_bStatic; bool m_bAbstract; QString m_sStereotype; QList m_oMethods; QList m_oAttributes; }; class data_pic { public: QPixmap m_oPix; QPixmap m_oThumb; //QString m_sPicLocation; // keep them on the item? //QString m_sPicCaption; //QString m_sPicComment; }; class data_item { public: data_item(sem_mediator *i_oControl, int i_iId); sem_mediator* m_oMediator; QString m_sSummary; QString m_sText; // length of the plain text code int m_iTextLength; QString m_sComment; QString m_sPicLocation; QString m_sPicCaption; QString m_sPicComment; //QPixmap m_oPix; //QPixmap m_oThumbnail; int m_iPicId; // references a data_pic QPixmap getPix(); QPixmap getThumb(); int m_iId; bool m_bSelected; double m_iXX; double m_iYY; double m_iWW; double m_iHH; int m_iDataType; QList m_oFlags; int m_iColor; int m_iDown; // item to use when going down (keyboard navigation) color_scheme m_oCustom; color_scheme& get_color_scheme(); color_scheme& get_color_scheme_raw(); QString m_sDiag; int m_iNumRows; int m_iNumCols; QHash, QString> m_oTableData; QString m_sHints; //bool load_from_path(const QString &); QFont m_oDiagramFont; QHash m_oBoxes; QList m_oLinks; // transient int m_iObjectWidthHint; int m_iObjectHeightHint; }; #endif semantik-0.9.5/src/base/flag_scheme.cpp000664 000000 000000 00000002323 12732552614 017771 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include # include #include "con.h" #include "flag_scheme.h" flag_scheme::flag_scheme(QObject *i_oParent) : QObject(i_oParent) { //m_sId = "key"; m_sName = trUtf8("Flag item(s) as..."); m_sIconPath = ":/images/erase.png"; m_oRenderer = NULL; } // name : libellé du flag en question, le path représente le nom de fichier flag_scheme::flag_scheme(QObject *i_oParent, QString i_sPath, QString i_sName) : QObject(i_oParent) { m_oRenderer = NULL; m_sId = i_sPath; m_sName = i_sName; if (m_sName.length()>0) m_sIconPath = QString(SEMANTIK_DIR)+"/flags/"+i_sPath+notr(".svg"); else m_sIconPath = QString(SEMANTIK_DIR)+"/images/"+i_sPath+notr(".svg"); } flag_scheme::~flag_scheme() { delete m_oRenderer; } QSvgRenderer* flag_scheme::_renderer() { if (!m_oRenderer) { m_oRenderer = new QSvgRenderer(m_sIconPath, this); m_oRenderer->setFramesPerSecond(0); } return m_oRenderer; } const QIcon flag_scheme::_icon() { QPixmap l_oPix(32, 32); QPainter l_oP(&l_oPix); l_oPix.fill(); _renderer()->render(&l_oP, l_oPix.rect()); QIcon l_oIcon; l_oIcon.addPixmap(l_oPix); return l_oIcon; } #include "flag_scheme.moc" semantik-0.9.5/src/base/flag_scheme.h000664 000000 000000 00000001014 12732552614 017432 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef FLAG_SCHEME_H #define FLAG_SCHEME_H //#include class QIcon; //#include class QSvgRenderer; #include #include class flag_scheme: public QObject { Q_OBJECT public: flag_scheme(QObject *i_oParent); ~flag_scheme(); flag_scheme(QObject *i_oParent, QString i_sPath, QString i_sName); QString m_sId; QString m_sName; QString m_sIconPath; QSvgRenderer *m_oRenderer; QSvgRenderer* _renderer(); const QIcon _icon(); }; #endif semantik-0.9.5/src/base/mem_base.cpp000664 000000 000000 00000014255 12732552614 017313 0ustar00rootroot000000 000000 // Thomas Nagy 2013-2015 GPLV3 #include #include #include "data_item.h" #include "mem_command.h" #include "sem_mediator.h" #include "mem_base.h" inline uint qHash(const QPoint &p) { return p.x() + p.y(); } mem_command::mem_command(sem_mediator* mod) { model = mod; } void mem_command::apply() { while (!model->m_oRedoStack.isEmpty()) delete model->m_oRedoStack.pop(); redo(); model->m_oUndoStack.push(this); model->check_undo(true); } void mem_command::add() { while (!model->m_oRedoStack.isEmpty()) delete model->m_oRedoStack.pop(); model->m_oUndoStack.push(this); model->check_undo(true); } void mem_command::redo_dirty() { was_dirty = model->m_bDirty; model->set_dirty(true); } void mem_command::undo_dirty() { model->set_dirty(was_dirty); } /////////////////////////////////////////////////////////////////// mem_delete::mem_delete(sem_mediator* mod) : mem_command(mod) { } void mem_delete::init(QList lst) { foreach (int id, lst) { items.append(*model + id); for (int i = 0; i < model->m_oLinks.size(); i++) { QPoint p = model->m_oLinks.at(i); if (p.x() == id || p.y() == id) { links.insert(p); } } } } void mem_delete::redo() { foreach (QPoint p, links) { Q_ASSERT(model->m_oLinks.contains(p)); model->m_oLinks.removeAll(p); model->notify_unlink_items(p.x(), p.y()); } foreach (data_item* d, items) { Q_ASSERT(model->m_oItems.contains(d->m_iId)); model->notify_delete_item(d->m_iId); model->m_oItems.remove(d->m_iId); } redo_dirty(); } void mem_delete::undo() { foreach (data_item* d, items) { Q_ASSERT(!model->m_oItems.contains(d->m_iId)); model->m_oItems[d->m_iId] = d; model->notify_add_item(d->m_iId); } foreach (QPoint p, links) { Q_ASSERT(!model->m_oLinks.contains(p)); model->m_oLinks.append(p); model->notify_link_items(p.x(), p.y()); } undo_dirty(); } /////////////////////////////////////////////////////////////////// mem_link::mem_link(sem_mediator* mod) : mem_command(mod) { } void mem_link::redo() { //qDebug()<<"redo mem_link"<m_oLinks.contains(QPoint(parent, child))); model->m_oLinks.append(QPoint(parent, child)); model->notify_link_items(parent, child); redo_dirty(); } void mem_link::undo() { //qDebug()<<"undo mem_link"<m_oLinks.contains(QPoint(parent, child))); model->m_oLinks.removeAll(QPoint(parent, child)); model->notify_unlink_items(parent, child); undo_dirty(); } /////////////////////////////////////////////////////////////////// mem_sel::mem_sel(sem_mediator* mod) : mem_command(mod) { m_iSortSel = NO_ITEM; m_iSortUnsel = NO_ITEM; foreach (data_item* t, model->m_oItems.values()) { Q_ASSERT(t != NULL); if (t->m_bSelected) { unsel.append(t->m_iId); } } if (unsel.size() == 1) { if (model->m_iSortId != NO_ITEM) { m_iSortUnsel = model->m_iSortId; } } } void mem_sel::apply() { //qDebug()<<"apply sel begin"<m_oUndoStack.size()<m_oRedoStack.size(); while (!model->m_oRedoStack.isEmpty()) delete model->m_oRedoStack.pop(); // TODO: merge a previous selection if possible? /*if (m_iSortSel == NO_ITEM && m_iSortUnsel == NO_ITEM) { while (!model->m_oUndoStack.empty()) { mem_command *me = model->m_oUndoStack.pop(); if (me->type() != SELECT) { model->m_oUndoStack.push(me); break; } mem_sel *sal = (mem_sel*) me; if (sal->m_iSortSel != NO_ITEM or sal->m_iSortUnsel != NO_ITEM) { model->m_oUndoStack.push(me); break; } foreach (int i, sal->sel) { if (!sel.contains(i) && !unsel.contains(i)) sel.append(i); } foreach (int i, sal->unsel) { if (!sel.contains(i) && !unsel.contains(i)) unsel.append(i); } delete sal; } }*/ foreach (int k, sel) { unsel.removeAll(k); } // normal processing redo(); model->m_oUndoStack.push(this); //qDebug()<<"apply sel end"<m_oUndoStack.size()<m_oRedoStack.size(); model->check_undo(true); } void mem_sel::redo() { //qDebug()<<"redo mem_sel"<m_oItems[k]->m_bSelected = false; } foreach (int k, sel) { model->m_oItems[k]->m_bSelected = true; } if (m_iSortUnsel != NO_ITEM) { model->m_iSortId = NO_ITEM; model->notify_sort(m_iSortUnsel, false); model->m_iSortCursor = 0; model->notify_message("", 0); } model->notify_select(unsel, sel); if (m_iSortSel != NO_ITEM) { model->notify_sort(m_iSortSel, true); model->m_iSortId = m_iSortSel; model->m_iSortCursor = 0; model->notify_message("", 0); } } void mem_sel::undo() { //qDebug()<<"undo mem_sel"<m_oItems[k]->m_bSelected = false; } foreach (int k, unsel) { model->m_oItems[k]->m_bSelected = true; } if (m_iSortSel != NO_ITEM) { model->notify_sort(m_iSortSel, false); model->m_iSortId = NO_ITEM; model->m_iSortCursor = 0; model->notify_message("", 0); } model->notify_select(sel, unsel); if (m_iSortUnsel != NO_ITEM) { model->notify_sort(m_iSortUnsel, true); model->m_iSortId = m_iSortUnsel; model->m_iSortCursor = 0; model->notify_message("", 0); } } /////////////////////////////////////////////////////////////////// mem_add::mem_add(sem_mediator* mod) : mem_command(mod) { parent = NO_ITEM; } void mem_add::init() { item = new data_item(model, model->next_seq()); sel = new mem_sel(model); } void mem_add::redo() { //qDebug()<<"redo mem_add"<m_iId; Q_ASSERT(!model->m_oItems.contains(item->m_iId)); model->m_oItems[item->m_iId] = item; model->notify_add_item(item->m_iId); if (parent) { Q_ASSERT(!model->m_oLinks.contains(QPoint(parent, item->m_iId))); model->m_oLinks.append(QPoint(parent, item->m_iId)); model->notify_link_items(parent, item->m_iId); } if (sel->sel.size() != 1) { sel->sel.append(item->m_iId); } sel->redo(); redo_dirty(); } void mem_add::undo() { //qDebug()<<"undo mem_add"<m_iId; sel->undo(); if (parent) { Q_ASSERT(model->m_oLinks.contains(QPoint(parent, item->m_iId))); model->m_oLinks.removeAll(QPoint(parent, item->m_iId)); model->notify_unlink_items(parent, item->m_iId); } Q_ASSERT(model->m_oItems.contains(item->m_iId)); model->notify_delete_item(item->m_iId); model->m_oItems.remove(item->m_iId); undo_dirty(); } semantik-0.9.5/src/base/mem_base.h000664 000000 000000 00000003055 12732552614 016754 0ustar00rootroot000000 000000 // Thomas Nagy 2013-2015 GPLV3 #ifndef MEM_BASE #define MEM_BASE #include #include class data_item; class sem_mediator; class mem_command { public: mem_command(sem_mediator*); virtual ~mem_command() {}; sem_mediator *model; virtual void undo() = 0; virtual void redo() = 0; virtual void apply(); virtual void redo_dirty(); virtual void undo_dirty(); void add(); bool was_dirty; enum IType {DELETE, ADD, LINK, UNLINK, SELECT, MOVE, COLOR, FLAG, EDIT, DATATYPE, TEXT, VARS, PIC, TABLE, SORT, ADD_BOX, DEL_BOX, EDIT_BOX, LINK_BOX, UNLINK_BOX, PROP_BOX, POS_BOX, CHANGE_LINK_BOX, SIZE_BOX, EDIT_LINK, IMPORT_BOX, SIZE_MATRIX, CHANGE_CLASS_BOX, DIAGRAM_PROPERTIES}; virtual IType type() = 0; }; class mem_delete : public mem_command { public: mem_delete(sem_mediator*); void init(QList ids); void undo(); void redo(); QList items; QSet links; IType type() { return DELETE; } }; class mem_sel : public mem_command { public: mem_sel(sem_mediator*); void undo(); void redo(); void apply(); QList unsel; QList sel; int m_iSortSel; int m_iSortUnsel; IType type() { return SELECT; } }; class mem_link : public mem_command { public: mem_link(sem_mediator*); void undo(); void redo(); int parent; int child; IType type() { return LINK; } }; class mem_add : public mem_command { public: mem_add(sem_mediator*); void init(); void undo(); void redo(); data_item* item; int parent; mem_sel *sel; IType type() { return ADD; } }; #endif semantik-0.9.5/src/base/sem_mediator.cpp000664 000000 000000 00000112520 12732552614 020205 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #if defined(_POSIX_C_SOURCE) #undef _POSIX_C_SOURCE #endif #if defined(_XOPEN_SOURCE) #undef _XOPEN_SOURCE #endif %: include #include #include #include %: include #include #include %:include\ #include #include #include #include /* */ #include #include #include /* */ %: include "con.h" #include #include "sembind.h" #include "data_item.h" %: include "sem_mediator.h" #include class semantik_reader : public QXmlDefaultHandler { public: semantik_reader(sem_mediator*); private: QString m_sBuf; int m_iVersion; sem_mediator *m_oMediator; int m_iId; data_link * cur_link; QStack m_oNodeStack; public: bool startElement(const QString&, const QString&, const QString&, const QXmlAttributes&); bool endElement(const QString&, const QString&, const QString&); bool characters(const QString &i_sStr); }; semantik_reader::semantik_reader(sem_mediator *i_oControl) { m_oMediator = i_oControl; cur_link = NULL; m_iId = NO_ITEM; } bool semantik_reader::startElement(const QString&, const QString&, const QString& i_sName, const QXmlAttributes& i_oAttrs) { if (i_sName == notr("info")) { //m_oMediator->m_sName = i_oAttrs.value("name"); //m_oMediator->m_sFirstName = i_oAttrs.value("fname"); //m_oMediator->m_sOrganization = i_oAttrs.value("organization"); //m_oMediator->m_sEmail = i_oAttrs.value("email"); m_oMediator->m_sHints = i_oAttrs.value(notr("hints")); m_iVersion = i_oAttrs.value(notr("version")).toInt(); m_oMediator->m_bExportIsWidth = i_oAttrs.value(notr("export_is_width")) != notr("false"); if (i_oAttrs.index(notr("export_width")) > -1) m_oMediator->m_iExportWidth = i_oAttrs.value(notr("export_width")).toInt(); else m_oMediator->m_iExportWidth = 0; if (m_oMediator->m_iExportWidth < 0 || m_oMediator->m_iExportWidth > 30000) m_oMediator->m_iExportWidth = 0; if (i_oAttrs.index(notr("export_height")) > -1) m_oMediator->m_iExportHeight = i_oAttrs.value(notr("export_height")).toInt(); else m_oMediator->m_iExportHeight = 0; if (m_oMediator->m_iExportHeight < 0 || m_oMediator->m_iExportHeight > 30000) m_oMediator->m_iExportHeight = 0; m_oMediator->m_sSpellingLanguage = i_oAttrs.value(notr("spelling_language")); m_oMediator->m_sExportUrl = i_oAttrs.value(notr("export_url")); if (i_oAttrs.value(notr("location")).size()) m_oMediator->m_sOutDir = i_oAttrs.value(notr("location")); if (i_oAttrs.value(notr("dir")).size()) m_oMediator->m_sOutProject = i_oAttrs.value(notr("dir")); if (i_oAttrs.value(notr("output")).size()) m_oMediator->m_sOutTemplate = i_oAttrs.value(notr("output")); } else if (i_sName == notr("link")) { int a = i_oAttrs.value(notr("p")).toInt(); int b = i_oAttrs.value(notr("v")).toInt(); if (!m_oMediator->m_oItems.contains(a)) return false; if (!m_oMediator->m_oItems.contains(b)) return false; m_oMediator->m_oLinks.append(QPoint(a, b)); } else if (i_sName == notr("tblsettings")) { data_item *l_oItem = m_oMediator->m_oItems.value(m_iId); l_oItem->m_iNumRows = i_oAttrs.value(notr("rows")).toInt(); l_oItem->m_iNumCols = i_oAttrs.value(notr("cols")).toInt(); } else if (i_sName == notr("linkbox")) { data_item *l_oItem = m_oMediator->m_oItems.value(m_iId); cur_link = new data_link(); l_oItem->m_oLinks.append(cur_link); cur_link->m_iParent = i_oAttrs.value(notr("parent")).toInt(); cur_link->m_iParentPos = i_oAttrs.value(notr("parentpos")).toInt(); cur_link->m_iChild = i_oAttrs.value(notr("child")).toInt(); cur_link->m_iChildPos = i_oAttrs.value(notr("childpos")).toInt(); cur_link->m_iRightArrow = (data_link::Arrow) i_oAttrs.value(notr("rightarrow")).toInt(); cur_link->m_iLeftArrow = (data_link::Arrow) i_oAttrs.value(notr("leftarrow")).toInt(); if (i_oAttrs.index("rightarrow") < 0) cur_link->m_iRightArrow = data_link::TRIANGLE; // legacy cur_link->color = QColor(i_oAttrs.value(notr("color"))); cur_link->m_oStartPoint = QPoint(i_oAttrs.value(notr("startx")).toInt(), i_oAttrs.value(notr("starty")).toInt()); cur_link->m_oEndPoint = QPoint(i_oAttrs.value(notr("endx")).toInt(), i_oAttrs.value(notr("endy")).toInt()); cur_link->border_width = i_oAttrs.value(notr("border_width")).toInt(); cur_link->pen_style = (Qt::PenStyle) i_oAttrs.value(notr("pen_style")).toInt(); cur_link->m_iLineType = (data_link::LineType) i_oAttrs.value(notr("line_type")).toInt(); } else if (i_sName == notr("linkbox_offset")) { Q_ASSERT(cur_link); cur_link->m_oOffsets.append(QPoint(i_oAttrs.value(notr("x")).toInt(), i_oAttrs.value(notr("y")).toInt())); } else if (i_sName == notr("tbl")) { data_item *l_oItem = m_oMediator->m_oItems.value(m_iId); int row = i_oAttrs.value(notr("row")).toInt(); int col = i_oAttrs.value(notr("col")).toInt(); QPair p(row, col); l_oItem->m_oTableData[p] = i_oAttrs.value(notr("text")); } else if (i_sName == notr("item")) { m_iId = i_oAttrs.value(notr("id")).toInt(); if (!m_iId) return false; data_item *l_oItem = new data_item(m_oMediator, m_iId); m_oMediator->m_oItems[m_iId] = l_oItem; l_oItem->m_sSummary = i_oAttrs.value(notr("summary")); l_oItem->m_sText = i_oAttrs.value(notr("text")); l_oItem->m_iTextLength = i_oAttrs.value(notr("len")).toInt(); l_oItem->m_sComment = i_oAttrs.value(notr("comment")); if (i_oAttrs.index(notr("pic_id")) != -1) l_oItem->m_iPicId = i_oAttrs.value(notr("pic_id")).toInt(); else l_oItem->m_iPicId = NO_ITEM; l_oItem->m_sPicLocation = i_oAttrs.value(notr("pic_location")); l_oItem->m_sPicCaption = i_oAttrs.value(notr("pic_caption")); l_oItem->m_sPicComment = i_oAttrs.value(notr("pic_comment")); l_oItem->m_iDataType = i_oAttrs.value(notr("data")).toInt(); if (l_oItem->m_iDataType == 0) l_oItem->m_iDataType = VIEW_TEXT; l_oItem->m_sHints = i_oAttrs.value(notr("hints")); l_oItem->m_iNumRows = i_oAttrs.value(notr("tbl_rows")).toInt(); l_oItem->m_iNumCols = i_oAttrs.value(notr("tbl_cols")).toInt(); l_oItem->m_sDiag = i_oAttrs.value(notr("dg")); l_oItem->m_iXX = i_oAttrs.value(notr("c2")).toDouble(); l_oItem->m_iYY = i_oAttrs.value(notr("c1")).toDouble(); l_oItem->m_iColor = i_oAttrs.value(notr("color")).toInt(); l_oItem->m_oCustom.m_sName = i_oAttrs.value(notr("custom_name")); l_oItem->m_oCustom.m_oInnerColor = QColor(i_oAttrs.value(notr("custom_inner"))); l_oItem->m_oCustom.m_oBorderColor = QColor(i_oAttrs.value(notr("custom_border"))); l_oItem->m_oCustom.m_oTextColor = QColor(i_oAttrs.value(notr("custom_text"))); QString l_s = i_oAttrs.value(notr("diagram_font")); if (!l_s.isEmpty()) { l_oItem->m_oDiagramFont.fromString(l_s); } } else if (i_sName == notr("color_schemes")) { m_oMediator->m_oColorSchemes.clear(); } else if (i_sName == notr("color_scheme")) { color_scheme l_o; l_o.m_sName = i_oAttrs.value(notr("name")); l_o.m_oInnerColor = i_oAttrs.value(notr("inner")); l_o.m_oBorderColor = i_oAttrs.value(notr("border")); l_o.m_oTextColor = i_oAttrs.value(notr("text")); m_oMediator->m_oColorSchemes.push_back(l_o); } else if (i_sName == notr("flag")) { data_item *l_oItem = m_oMediator->m_oItems.value(m_iId); l_oItem->m_oFlags.push_back(i_oAttrs.value(notr("id"))); } else if (i_sName == notr("itembox")) { data_item *l_oItem = m_oMediator->m_oItems.value(m_iId); int bid = i_oAttrs.value(notr("id")).toInt(); data_box *box = new data_box(bid); m_oNodeStack.push(box); l_oItem->m_oBoxes[bid] = box; box->read_data(i_sName, i_oAttrs); } else if (i_sName == notr("semantik")) { // TODO } else { // FIXME this will never work Q_ASSERT(!m_oNodeStack.empty()); node& l_o = m_oNodeStack.top()->make_node(i_sName, i_oAttrs); m_oNodeStack.push(&l_o); } return true; } bool semantik_reader::endElement(const QString&, const QString&, const QString& i_sName) { if (i_sName == notr("data") || i_sName.startsWith(notr("box"))) { Q_ASSERT(!m_oNodeStack.empty()); m_oNodeStack.pop(); } return true; } bool semantik_reader::characters(const QString &i_s) { m_sBuf += i_s; return true; } sem_mediator::~sem_mediator() { destroy_timer(); clean_temp_dir(); while (!m_oFlagSchemes.empty()) { delete m_oFlagSchemes.takeFirst(); } } void sem_mediator::init_timer() { destroy_timer(); if (m_iTimerValue<1) return; m_oTimer = new QTimer(this); m_oTimer->setInterval(m_iTimerValue * 60000); connect(m_oTimer, SIGNAL(timeout()), this, SLOT(slot_autosave())); m_oTimer->start(); } void sem_mediator::destroy_timer() { if (m_oTimer) m_oTimer->stop(); delete m_oTimer; m_oTimer = NULL; } void sem_mediator::slot_autosave() { // autosave for the last used save name qDebug()<<"autosave"< 1) { QString o = trUtf8("Automatic save failed for file: %1").arg(m_sLastSaved); if (save_file(m_sLastSaved)) { o = trUtf8("%1 saved automatically").arg(m_sLastSaved); } emit sig_message(o, 5000); } } void sem_mediator::init_colors() { m_oColorSchemes.clear(); QStringList l_oS; //l_oS<<"#FFFCD5"<<"#ABFBC7"<<"#FDE1E1"<<"#D2F1FF"<<"#EDDFFF"<<"#FFFFFF"; l_oS<<"#fffe8d"<<"#91ffab"<<"#9bfffe"<<"#b8bbff"<<"#e0aaff"<<"#ffa6a6"<<"#ffd8a6"<<"#FFFFFF"<<"#d3d7cf"; int i = 0; foreach (QString l_s, l_oS) { color_scheme l_o; l_o.m_oInnerColor = QColor(l_s); l_o.m_sName = trUtf8("Color %1").arg(QString::number(i)); m_oColorSchemes.push_back(l_o); ++i; } KConfigGroup l_oSettings(KGlobal::config(), notr("General Options")); m_iConnType = l_oSettings.readEntry(notr("conn"), 0); m_iReorgType = l_oSettings.readEntry(notr("reorg"), 0); m_dTriSize = l_oSettings.readEntry(notr("trisize"), (double) 4.5); m_iTimerValue = l_oSettings.readEntry(notr("auto"), 0); m_iAutoReorg = l_oSettings.readEntry(notr("autoReorg"), 1); init_timer(); emit sync_colors(); } void sem_mediator::init_flags() { while (!m_oFlagSchemes.empty()) { delete m_oFlagSchemes.takeFirst(); } QStringList l_oLst = QString(notr("flag_delay flag_idea flag_look flag_lunch flag_money flag_ok flag_people flag_phone flag_star flag_stop flag_talk flag_target flag_time flag_tune flag_unknown flag_write")).split(" "); foreach (QString l_s, l_oLst) { m_oFlagSchemes.push_back(new flag_scheme(this, l_s, l_s)); } emit sync_flags(); } void sem_mediator::init_temp_dir() { char sfn[16] = ""; strcpy(sfn, "/tmp/sem.XXXXXX"); char * l_oRet = mkdtemp(sfn); m_sTempDir = l_oRet; Q_ASSERT(l_oRet!=NULL); Q_ASSERT(QFile::exists(m_sTempDir)); } void sem_mediator::clean_temp_dir() { //qDebug()<<"sem_mediator::clean_temp_dir"; QProcess l_oP; QStringList l_oArgs; l_oArgs<m_iXX + l_oData->m_iWW/2, // (double) l_oData->m_iYY + l_oData->m_iHH/2, // (double) l_oData->m_iWW/2, (double) l_oData->m_iHH/2); } for (int i=0; im_iXX = get_x(l_iVal) - l_oData->m_iWW/2; l_oData->m_iYY = get_y(l_iVal) - l_oData->m_iHH/2; update_item(l_iVal); } cleanup_pb(); hash_params l_oCmd2; l_oCmd2.insert(data_commande, QVariant(cmd_open_map)); emit synchro(l_oCmd2);*/ } #endif QString sem_mediator::doc_to_xml() { QStringList l_oS; l_oS<\n"); l_oS<\n"); l_oS<\n"); l_oS<\n"); foreach (color_scheme l_o, m_oColorSchemes) { l_oS<\n").arg( l_o.m_sName, l_o.m_oInnerColor.name(), l_o.m_oBorderColor.name(), l_o.m_oTextColor.name() ); } l_oS<\n"); QList l_oLst = m_oItems.values(); for (int i=0; im_iId)); l_oS<m_sSummary)); l_oS<m_sText)); l_oS<m_iTextLength)); l_oS<m_sComment)); l_oS<m_iPicId)); l_oS<m_sPicLocation)); l_oS<m_sPicCaption)); l_oS<m_sPicComment)); l_oS<m_iNumRows)); l_oS<m_iNumCols)); l_oS<m_sDiag)); l_oS<m_sHints)); l_oS<m_iDataType)); l_oS<m_iYY)); l_oS<m_iXX)); l_oS<m_iColor)); color_scheme l_o = l_oItem->m_oCustom; l_oS<m_oDiagramFont.toString()); l_oS<\n"); l_oS<\n").arg( QString::number(l_oItem->m_iNumRows), QString::number(l_oItem->m_iNumCols)); QPair p; foreach (p, l_oItem->m_oTableData.keys()) { l_oS<m_oTableData[p])); l_oS<\n"); } foreach (QString l_s, l_oItem->m_oFlags) { l_oS<\n").arg(bind_node::protectXML(l_s)); } foreach (data_box *box, l_oItem->m_oBoxes) { box->dump_xml(l_oS); } foreach (data_link *link, l_oItem->m_oLinks) { l_oS<\n").arg( QString::number(link->m_iParent), QString::number(link->m_iParentPos), QString::number(link->m_iChild), QString::number(link->m_iChildPos), link->color.name(), QString::number(link->border_width), QString::number(link->pen_style), QString("\n startx=\"%1\" starty=\"%2\" endx=\"%3\" endy=\"%4\" leftarrow=\"%5\" rightarrow=\"%6\" line_type=\"%7\"").arg( QString::number(link->m_oStartPoint.x()), QString::number(link->m_oStartPoint.y()), QString::number(link->m_oEndPoint.x()), QString::number(link->m_oEndPoint.y()), QString::number(link->m_iLeftArrow), QString::number(link->m_iRightArrow), QString::number(link->m_iLineType) ) ); foreach (QPoint p, link->m_oOffsets) { l_oS<\n").arg(QString::number(p.x()), QString::number(p.y())); } l_oS<\n"); } l_oS<\n"); } for (int i=0; i\n").arg(l_oP.x()).arg(l_oP.y()); } l_oS<\n"); return l_oS.join(""); } bool sem_mediator::save_file(QString i_sUrl) { //Q_ASSERT(i_sUrl.endsWith(".sem")); QFile l_o2(QString(TEMPLATE_DIR)+notr("/semantik.sem.py")); if (!l_o2.open(QIODevice::ReadOnly)) { emit sig_message(trUtf8("File saving: missing file %1").arg(l_o2.fileName()), 5000); return false; } QByteArray l_oBa = l_o2.readAll(); l_o2.close(); QStringList lst; foreach (data_item *d, m_oItems.values()) { if (d->m_iPicId != NO_ITEM) { lst << QString::number(d->m_iPicId); } } bind_node::init(this); bind_node::set_var(notr("temp_dir"), m_sTempDir); bind_node::set_var(notr("outfile"), i_sUrl); bind_node::set_var(notr("fulldoc"), doc_to_xml()); bind_node::set_var(notr("hints"), m_sHints); bind_node::set_var(notr("namet"), ""); bind_node::set_var(notr("outdir"), ""); bind_node::set_var(notr("pics"), lst.join(",")); if (!init_py()) { emit sig_message(trUtf8("Missing bindings for opening files"), 5000); return false; } PyRun_SimpleString(l_oBa.constData()); m_sLastSaved = i_sUrl; set_dirty(false); return true; } void sem_mediator::purge_document() { while (!m_oUndoStack.isEmpty()) delete m_oUndoStack.pop(); while (!m_oRedoStack.isEmpty()) delete m_oRedoStack.pop(); mem_sel *sel = new mem_sel(this); sel->apply(); mem_delete* del = new mem_delete(this); del->init(m_oItems.keys()); del->apply(); } void sem_mediator::undo_purge() { m_oItems.clear(); m_oLinks.clear(); while (!m_oUndoStack.isEmpty()) { mem_command* c = m_oUndoStack.pop(); c->undo(); } while (!m_oRedoStack.isEmpty()) delete m_oRedoStack.pop(); } void sem_mediator::check_undo(bool enable) { if (enable) { emit enable_undo(!m_oUndoStack.isEmpty(), !m_oRedoStack.isEmpty()); } else { emit enable_undo(false, false); } } bool sem_mediator::open_file(const QString& i_sUrl) { purge_document(); QFile l_o2(QString(FILTER_DIR)+"/main.py"); if (!l_o2.open(QIODevice::ReadOnly)) { KMessageBox::sorry(NULL, trUtf8("Missing filter file %1 for opening files").arg(l_o2.fileName()), trUtf8("Broken installation")); undo_purge(); return false; } QByteArray l_oBa = l_o2.readAll(); l_o2.close(); bind_node::set_var(notr("temp_dir"), m_sTempDir); bind_node::set_var(notr("pname"), i_sUrl); bind_node::set_var(notr("hints"), m_sHints); bind_node::set_var(notr("namet"), i_sUrl); bind_node::set_var(notr("outdir"), ""); if (!init_py()) { KMessageBox::sorry(NULL, trUtf8("Missing python bindings for opening files"), trUtf8("Broken installation")); undo_purge(); return false; } PyRun_SimpleString(l_oBa.constData()); //qDebug()<<"full text "<m_iPicId = seq; QFile f(l_oInfo.absoluteFilePath()); QString name = f.fileName().replace(QRegExp(notr("/pic-\\d+")), QString("/img-%1").arg(QString::number(seq))); f.rename(name); } } else if (l_sName.startsWith(notr("img-"))) { l_sName = l_sName.section(QRegExp(notr("[.-]")), 1, 1); int l_iVal = l_sName.toInt(); load_picture(l_oInfo.absoluteFilePath(), l_iVal); } } // now update all items created foreach (int i, m_oItems.keys()) { notify_add_item(i); } foreach (QPoint p, m_oLinks) { notify_link_items(p.x(), p.y()); } QList lst; mem_sel *sel = new mem_sel(this); sel->sel = lst; sel->apply(); // now tell all the views that a new map was loaded emit sig_open_map(); emit sync_colors(); QRegExp r(notr(".kdi$")); QString s(notr(".sem")); m_sLastSaved = i_sUrl; m_sLastSaved.replace(r, s); sel = new mem_sel(this); sel->sel = lst; sel->apply(); set_dirty(false); return true; } bool sem_mediator::link_items(int i_iParent, int i_iChild) { Q_ASSERT(m_oItems.contains(i_iParent) && m_oItems.contains(i_iChild)); if (i_iParent == i_iChild) return false; // one parent for (int i=0; i NO_ITEM) { int l_iNew = NO_ITEM; for (int i=0; iparent = i_iParent; lnk->child = i_iChild; lnk->apply(); return true; } QList sem_mediator::all_roots() { QList l_o = QList (); foreach (int l_iVal, m_oItems.keys()) { for (int i=0; im_bSelected) return l_iVal; } return NO_ITEM; } void sem_mediator::next_root() { QList l_o = all_roots(); if (l_o.size() == 0) return; int l_i = itemSelected(); if (l_i == NO_ITEM && !l_o.empty()) { private_select_item(l_o[0]); } for (int i=0; i l_o = all_roots(); int l_i = itemSelected(); if (l_i == NO_ITEM && !l_o.empty()) { private_select_item(l_o[0]); } for (int i=0; i l_o = all_roots(); if (l_o.size() > 0) private_select_item(l_o[0]); } else { int l_iId = root_of(i_iId); private_select_item(l_iId); } } void sem_mediator::select_item_keyboard(int l_iId, int l_iDirection) { if (l_iId == NO_ITEM) { select_root_item(NO_ITEM); return; } if (!m_oLinks.size()) return; switch (l_iDirection) { case 1: //left { int l_iParent = NO_ITEM; int i = 0; while (i= m_oLinks.size()) i=0; QPoint l_oP = m_oLinks.at(i); if (l_oP.x() == l_iParent) { private_select_item(l_oP.y()); break; } } } break; case 3: //top { for (int i=0; im_iDown = l_iId; private_select_item(l_oP.x()); return; } } } break; case 4: //bottom { // first try the cache data_item *l_oItem = m_oItems.value(l_iId); Q_ASSERT(l_oItem != NULL); int l_iDown = l_oItem->m_iDown; for (int i=0; iapply(); bind_node::init(this); bind_node::_root = bind_node::create_tree(this, choose_root()); notify_export_doc(); foreach (int l_iVal, m_oItems.keys()) { data_item *l_oData = m_oItems.value(l_iVal); // the diagram view is the only one for now if (l_oData->m_iDataType == VIEW_DIAG || l_oData->m_iDataType == VIEW_IMG) notify_export_item(l_oData->m_iId); } bind_node::set_var(notr("temp_dir"), m_sTempDir); bind_node::set_var(notr("outdir"), i_sLocation); bind_node::set_var(notr("pname"), i_sDirName); bind_node::set_var(notr("fulldoc"), doc_to_xml()); bind_node::set_var(notr("hints"), m_sHints); bind_node::set_var(notr("namet"), i_oFile); bind_node::set_var(notr("preview"), ""); // leave this right here! get the file generated if (!init_py()) { emit sig_message(trUtf8("Missing bindings for opening files"), 5000); return; } PyRun_SimpleString(l_oBa.constData()); emit sig_message(trUtf8("Document generation completed successfully"), 5000); emit sig_preview(); } int sem_mediator::choose_root() { int l_oCand = NO_ITEM; int l_oCandSize = 0; for (int i=0; i NO_ITEM) continue; if (l_oP.x() == l_oCand) continue; int l_oNewSize = size_of(l_oP.x()); if (l_oNewSize > l_oCandSize) { l_oCand = l_oP.x(); l_oCandSize = l_oNewSize; } } if (l_oCandSize == 0) return NO_ITEM; return l_oCand; } QPair sem_mediator::hint_size_diagram(int id) { int width = 0; int height = 0; data_item *item = m_oItems.value(id); Q_ASSERT(item); if (item->m_sHints.size() > 4) { if (!init_py()) { emit sig_message(trUtf8("Missing bindings for opening files"), 5000); } else { bind_node::s_oResults.clear(); QString s = QString("compute_hints(%1)").arg(id); QByteArray ba = s.toAscii(); PyRun_SimpleString(ba.constData()); width = bind_node::s_oResults.value("diagram_width").toInt(); height = bind_node::s_oResults.value("diagram_height").toInt(); } } return QPair(width, height); } int sem_mediator::size_of(int i_i) { // warning, recursive int l_i = 0; for (int i=0; i"); } m_sBuf.clear(); return true; } sem_mediator::sem_mediator(QObject* i_oParent) : QObject(i_oParent) { num_seq = 1; pic_seq = 1; m_iSortId = NO_ITEM; m_iSortCursor = 0; m_sOutDir = ""; m_iTimerValue = 21 / 4; m_bDirty = false; m_bExportIsWidth = true; m_iExportWidth = 0; m_iExportHeight = 0; m_oTimer = NULL; m_sOutProject = ""; m_sOutTemplate = ""; init_temp_dir(); if (!QFile::exists(SEMANTIK_DIR "/templates/waf")) { qDebug()<<"Access denied ^ô^"; Q_ASSERT(false); } } bool html_converter::endElement(const QString&, const QString&, const QString& i_sName) { if (i_sName == notr("p")) { m_oTotale<")<"); } else if (i_sName == notr("li")) { m_oTotale<"); } return true; } bool html_converter::characters(const QString &i_s) { m_sBuf += i_s; return true; } data_item* sem_mediator::operator+(const int y) { return m_oItems.value(y); } void sem_mediator::slot_undo() { if (!m_oUndoStack.isEmpty()) { mem_command *t = m_oUndoStack.pop(); t->undo(); m_oRedoStack.push(t); } check_undo(true); } void sem_mediator::slot_redo() { if (!m_oRedoStack.isEmpty()) { mem_command *t = m_oRedoStack.pop(); t->redo(); m_oUndoStack.push(t); } check_undo(true); } void sem_mediator::private_select_item(int id) { mem_sel *sel = new mem_sel(this); sel->sel.append(id); sel->apply(); } QPixmap sem_mediator::getPix(int id) { if (id == NO_ITEM) return QPixmap(); data_pic *pic = m_oPixCache.value(id); if (pic) return pic->m_oPix; return QPixmap(); } QPixmap sem_mediator::getThumb(int id) { if (id == NO_ITEM) return QPixmap(); data_pic *pic = m_oPixCache.value(id); if (pic) return pic->m_oThumb; return QPixmap(); } bool sem_mediator::save_and_load_picture(const KUrl& i_sPath, int id) { QStringList sp = i_sPath.path().split("."); if (sp.size() < 2) return false; QString dest = QString(m_sTempDir+"/img-%1.%2").arg(QString::number(id)).arg(sp[sp.size()-1]); bool ok = KIO::NetAccess::file_copy(i_sPath, KUrl(dest), NULL); if (!ok) goto cleanup; ok = load_picture(dest, id); if (!ok) goto cleanup; return true; cleanup: KIO::NetAccess::del(KUrl(dest), NULL); return false; } bool sem_mediator::load_picture(const QString & i_sPath, int id) { QPixmap l_oPix; l_oPix.load(i_sPath); if (l_oPix.isNull()) return false; // l_oPix.scaledToHeight(300); data_pic *pic = m_oPixCache[id]; if (!pic) pic = new data_pic(); pic->m_oPix = l_oPix; pic->m_oThumb = l_oPix.scaledToHeight(32); m_oPixCache[id] = pic; return true; } void sem_mediator::notify_add_item(int id) { emit sig_add_item(id); } void sem_mediator::notify_delete_item(int id) { emit sig_delete_item(id); } void sem_mediator::notify_link_items(int id1, int id2) { emit sig_link_items(id1, id2); } void sem_mediator::notify_unlink_items(int id1, int id2) { emit sig_unlink_items(id1, id2); } void sem_mediator::notify_select(const QList& unsel, const QList& sel) { emit sig_select(unsel, sel); } void sem_mediator::notify_move(const QList&sel, const QList&pos) { emit sig_move(sel, pos); } void sem_mediator::notify_repaint(int id) { emit sig_repaint(id); } void sem_mediator::notify_edit(int id) { emit sig_edit(id); } void sem_mediator::notify_flag(int id) { emit sig_flag(id); } void sem_mediator::notify_datatype(int id) { emit sig_datatype(id); } void sem_mediator::notify_text(int id) { emit sig_text(id); } void sem_mediator::notify_vars(int id) { emit sig_vars(id); } void sem_mediator::notify_pic(int id) { emit sig_pic(id); } void sem_mediator::notify_table(int id) { emit sig_table(id); } void sem_mediator::notify_sort(int l_iId, bool l_bShow) { emit sig_sort(l_iId, l_bShow); } void sem_mediator::notify_change_data(int id) { emit sig_change_data(id); } void sem_mediator::notify_export_item(int id) { emit sig_export_item(id); } void sem_mediator::notify_export_doc() { emit sig_export_doc(); } void sem_mediator::notify_add_box(int id, int box) { emit sig_add_box(id, box); } void sem_mediator::notify_del_box(int id, int box) { emit sig_del_box(id, box); } void sem_mediator::notify_edit_box(int id, int box) { emit sig_edit_box(id, box); } void sem_mediator::notify_link_box(int id, data_link*link) { emit sig_link_box(id, link); } void sem_mediator::notify_unlink_box(int id, data_link*link) { emit sig_unlink_box(id, link); } void sem_mediator::notify_message(const QString& msg, int duration) { emit sig_message(msg, duration); } void sem_mediator::notify_box_props(int id, const QList& items) { emit sig_box_props(id, items); } void sem_mediator::notify_pos_box(int id, const QList& items) { emit sig_pos_box(id, items); } void sem_mediator::notify_focus(void *ptr) { emit sig_focus(ptr); } void sem_mediator::notify_change_link_box(int id, data_link*link) { emit sig_change_link_box(id, link); } void sem_mediator::notify_size_box(int id, const QList& items) { emit sig_size_box(id, items); } void sem_mediator::notify_change_properties(void* i_o) { emit sig_change_properties(i_o); } #include "sem_mediator.moc" semantik-0.9.5/src/base/sem_mediator.h000664 000000 000000 00000013045 12732552614 017654 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef DATA_CONTROL_H #define DATA_CONTROL_H #include #include #include #include #include #include "aux.h" #include "con.h" #include "mem_base.h" #include "flag_scheme.h" #include "color_scheme.h" #include "data_item.h" class QTimer; class html_converter : public QXmlDefaultHandler { public: html_converter(); bool startElement(const QString&, const QString&, const QString&, const QXmlAttributes&); bool endElement(const QString&, const QString&, const QString&); bool characters(const QString &i_sStr); QString m_sBuf; QStringList m_oTotale; }; class semantik_reader; class data_item; class bind_node; class data_link; class sem_mediator: public QObject { Q_OBJECT signals: //void rectangle_changed(int i); void sig_message(const QString&, int); void dirty(bool); void update_title(); void sig_add_item(int id); void sig_delete_item(int id); void sig_link_items(int id1, int id2); void sig_unlink_items(int id1, int id2); void sync_flags(); void sync_colors(); void sig_select(const QList& unsel, const QList& sel); void sig_move(const QList&sel, const QList&pos); void sig_repaint(int id); void sig_flag(int id); void sig_edit(int id); void sig_text(int id); void sig_datatype(int id); void sig_preview(); void sig_vars(int id); void sig_pic(int id); void sig_table(int id); void sig_sort(int, bool); void sig_open_map(); void sig_change_data(int id); void sig_export_item(int id); void sig_export_doc(); void sig_focus(void*); void sig_add_box(int, int); void sig_del_box(int, int); void sig_edit_box(int, int); void sig_link_box(int, data_link*); void sig_unlink_box(int, data_link*); void sig_box_props(int id, const QList&); void sig_pos_box(int id, const QList&); void sig_change_link_box(int id, data_link*); void sig_size_box(int id, const QList&); void sig_change_properties(void*); void enable_undo(bool, bool); public: sem_mediator(QObject *i_oParent); ~sem_mediator(); void undo_purge(); QString m_sTempDir; QString m_sOutDir; QString m_sOutProject; QString m_sOutTemplate; bool m_bExportIsWidth; int m_iExportWidth; int m_iExportHeight; QString m_sExportUrl; void set_dirty(bool b = true); bool m_bDirty; void init_temp_dir(); void clean_temp_dir(); bool save_file(QString); bool open_file(const QString&); void purge_document(); void init_colors(); void init_flags(); // first parameter is the parent, second parameter is the wanted id // and the third parameter is for copying the parents data bool link_items(int id1, int id2); int num_children(int i_iParent); int m_iConnType; int m_iAutoReorg; int m_iReorgType; void select_root_item(int); QList all_roots(); int root_of(int i_iId); void next_root(); void prev_root(); double m_dTriSize; QString m_sSpellingLanguage; QColor m_oColor; QString m_sHints; QStack m_oUndoStack; QStack m_oRedoStack; void notify_add_item(int id); void notify_delete_item(int id); void notify_link_items(int id1, int id2); void notify_unlink_items(int id1, int id2); void notify_select(const QList& unsel, const QList& sel); void notify_move(const QList&sel, const QList&pos); void notify_repaint(int id); void notify_edit(int id); void notify_text(int id); void notify_vars(int id); void notify_flag(int id); void notify_pic(int id); void notify_datatype(int id); void notify_table(int id); void notify_sort(int, bool); void notify_change_data(int id); void notify_export_item(int id); void notify_export_doc(); void notify_focus(void *); void notify_add_box(int id, int box); void notify_del_box(int id, int box); void notify_edit_box(int id, int box); void notify_link_box(int id, data_link *link); void notify_unlink_box(int id, data_link *link); void notify_box_props(int id, const QList&); void notify_pos_box(int id, const QList&); void notify_change_link_box(int id, data_link*); void notify_size_box(int id, const QList&); void notify_change_properties(void*); void notify_message(const QString& msg, int duration); public: KUrl m_oCurrentUrl; QHash m_oItems; QList m_oLinks; QList m_oImgs; QList m_oColorSchemes; QList m_oFlagSchemes; int next_seq(); int next_pic_seq(); QPair hint_size_diagram(int); QHash m_oPixCache; QPixmap getPix(int id); QPixmap getThumb(int id); bool load_picture(const QString&, int); bool save_and_load_picture(const KUrl& i_sPath, int id); void generate_docs(const QString &i_oFile, const QString &i_sName, const QString &i_sLocation); int m_iTimerValue; int parent_of(int i_iId); int size_of(int i_iId); int choose_root(); void init_timer(); void destroy_timer(); QString doc_to_xml(); QString m_sLastSaved; data_item* operator+(const int x); void select_item_keyboard(int, int); void private_select_item(int i_oId); void check_undo(bool); // check if the undo/redo actions can be enabled int itemSelected(); int m_iSortId; int m_iSortCursor; friend class semantik_reader; private: int num_seq; int pic_seq; QTimer *m_oTimer; public slots: //void do_reorganize(); void slot_autosave(); void slot_undo(); void slot_redo(); }; QIcon fetch_icon(const QString& i_sName, int i_iSize=32); #endif semantik-0.9.5/src/base/sembind.cpp000664 000000 000000 00000012244 12732552614 017160 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include "data_item.h" #inclu\ de "sem_mediator.h" #include "con.h" #include "sembind.h" #include "sem_mediator.h" bind_node* bind_node::_root = NULL; sem_mediator * bind_node::_model = NULL; QHash bind_node::_cache = QHash(); QMap bind_node::s_oResults = QMap(); QMap bind_node::s_oVars = QMap(); bind_node::bind_node() { m_oItem = NULL; } bind_node::~bind_node() { } int bind_node::child_count() { return _children.count(); } bind_node* bind_node::child_num(int i_i) { return _children.at(i_i); } void bind_node::set_var(const QString& i_s, const QString &i_s1) { s_oVars[i_s] = i_s1; } QString bind_node::get_var(const QString &i_s) { if (i_s == notr("template_dir")) return QString(TEMPLATE_DIR); if (i_s == notr("filter_dir")) return QString(FILTER_DIR); //qDebug()<m_iId); } else if (i_s == notr("summary")) { return m_oItem->m_sSummary; } else if (i_s == notr("text")) { return m_oItem->m_sText; } else if (i_s == notr("hints")) { return m_oItem->m_sHints; } else if (i_s == notr("comment")) { return m_oItem->m_sComment; } else if (i_s == notr("pic_location")) { return m_oItem->m_sPicLocation; } else if (i_s == notr("tree_size")) { return QString::number(m_oItem->m_oMediator->size_of(m_oItem->m_iId)); } else if (i_s == notr("pic_w")) { return QString::number(m_oItem->getPix().width()); } else if (i_s == notr("pic_h")) { return QString::number(m_oItem->getPix().height()); } else if (i_s == notr("type")) { return QString::number(m_oItem->m_iDataType); } else if (i_s == notr("pic_id")) { return QString::number(m_oItem->m_iPicId); } else if (i_s == notr("x")) { return QString::number(m_oItem->m_iXX); } else if (i_s == notr("y")) { return QString::number(m_oItem->m_iYY); } else if (i_s == notr("w")) { return QString::number(m_oItem->m_iWW); } else if (i_s == notr("h")) { return QString::number(m_oItem->m_iHH); } else if (i_s == notr("widthHint")) { return QString::number(m_oItem->m_iObjectWidthHint); } else if (i_s == notr("heightHint")) { return QString::number(m_oItem->m_iObjectHeightHint); } return ""; } int bind_node::num_rows() { return m_oItem->m_iNumRows; } int bind_node::num_cols() { return m_oItem->m_iNumCols; } QString bind_node::tbl_cell(int row, int col) { QPair l_o; foreach(l_o, m_oItem->m_oTableData.keys()) { if (l_o.first == row && l_o.second == col) return m_oItem->m_oTableData[l_o]; } return ""; } bind_node* bind_node::instance() { return _root; } #if 0 QString bind_node::protectCode(const QString &i_s) { QString l_sRet = i_s; l_sRet.replace("\n", "\\n"); l_sRet.replace("\"", "\\\""); return l_sRet; } #endif QString bind_node::protectXML(const QString& i_s) { QString l_s = i_s; l_s.replace("&", "&"); l_s.replace("<", "<"); l_s.replace(">", ">"); l_s.replace("\'", "'"); l_s.replace("\"", """); l_s.replace(QChar(0), ""); // yeah, null bytes... return l_s; } QString bind_node::protectHTML(const QString &i_s) { if (i_s.length()<3) return ""; html_converter l_oHandler; QXmlInputSource l_oSource; l_oSource.setData(i_s); QXmlSimpleReader l_oReader; l_oReader.setContentHandler(&l_oHandler); if (!l_oReader.parse(l_oSource)) return QString(); return l_oHandler.m_oTotale.join(""); } QString bind_node::get_item_ids() { Q_ASSERT(_model != NULL); QStringList lst; foreach (int id, _model->m_oItems.keys()) { lst << QString::number(id); } return lst.join(","); } bind_node* bind_node::get_item_by_id(int id) { Q_ASSERT(_model != NULL); bind_node *l_oNode = _cache.value(id); if (l_oNode) return l_oNode; l_oNode = _cache[id] = new bind_node(); l_oNode->m_oItem = _model->m_oItems.value(id); Q_ASSERT(l_oNode != NULL); return l_oNode; } bind_node* bind_node::create_tree(sem_mediator *model, int i_i) { Q_ASSERT(i_i!=0); bind_node * l_oNode = new bind_node(); l_oNode->m_oItem = model->m_oItems.value(i_i); for (int i=0; i < model->m_oLinks.size(); i++) { QPoint l_oP = model->m_oLinks.at(i); if (l_oP.x() != i_i) continue; bind_node *l_oNew = create_tree(model, l_oP.y()); l_oNode->_children.push_back(l_oNew); } _cache[i_i] = l_oNode; Q_ASSERT(l_oNode != NULL); return l_oNode; } void bind_node::init(sem_mediator* med) { // delete any node in the cache foreach (int k, _cache.keys()) { bind_node * node = bind_node::_cache.take(k); delete node; } Q_ASSERT(_cache.size() == 0); bind_node::_model = med; bind_node::s_oVars.clear(); } void bind_node::set_result(const QString& k, const QString& v) { s_oResults[k] = v; } semantik-0.9.5/src/base/sembind.h000664 000000 000000 00000002522 12732552614 016623 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef BIND_NODE_H #define BIND_NODE_H #include #include #include class data_item; class sem_mediator; class bind_node { public: static bind_node* instance(); static QString get_var(const QString &); static void set_var(const QString &, const QString &); static void set_result(const QString &, const QString &); static QString get_item_ids(); static bind_node* get_item_by_id(int i); // tree manipulation int child_count(); bind_node* child_num(int i); // summary, text, comment, .. QString get_val(const QString &); void set_val(const QString &, const QString &); // links int link_count(); QString link_location(int); QString link_caption(int); // table int num_rows(); int num_cols(); QString tbl_cell(int row, int col); // utils static QString protectXML(const QString &); static QString protectHTML(const QString &); //protected: static void init(sem_mediator*); static bind_node* create_tree(sem_mediator *model, int i_i); bind_node(); ~bind_node(); static QMap s_oVars; static QMap s_oResults; static bind_node* _root; static QHash _cache; static sem_mediator* _model; QList _children; data_item *m_oItem; }; int init_py(); #endif // BIND_NODE_H semantik-0.9.5/src/base/sembind_py.cpp000664 000000 000000 00000015110 12732552614 017663 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include "sembind.h" PyObject *from_qstring(const QString &i_s) { QByteArray l_b = i_s.toUtf8(); PyObject *l_o = PyString_FromStringAndSize(l_b.data(), l_b.size()); Py_XINCREF(l_o); return l_o; } QString from_unicode(PyObject* i_o) { if (!i_o) return QString(); int is_string = PyString_Check(i_o); if (!is_string) { //qDebug()<<"not a string!!"; return QString(); } int l_iSize = PyString_Size(i_o); char * l_iChars = PyString_AsString(i_o); QString l_s = QString::fromUtf8(l_iChars, l_iSize); QChar * data = l_s.data(); QString ret = QString(data); // force a deep copy, python can safely collect i_o return ret; } PyObject *Node_instance(PyObject *i_s, PyObject *i_oArgs) { bind_node *l_oFils = bind_node::instance(); return PyCObject_FromVoidPtr(l_oFils, NULL); } PyObject *Node_child_num(PyObject *i_s, PyObject *i_oArgs) { PyObject * i_oObj1 = NULL; int num = 0; if (!PyArg_ParseTuple(i_oArgs, "Oi", &i_oObj1, &num)) { Q_ASSERT(false); return NULL; } bind_node *l_oParent = (bind_node*) PyCObject_AsVoidPtr(i_oObj1); Q_ASSERT(l_oParent); bind_node *l_oFils = l_oParent->child_num(num); Q_ASSERT(l_oFils); return PyCObject_FromVoidPtr(l_oFils, NULL); } PyObject *Node_get_cell(PyObject *i_s, PyObject *i_oArgs) { PyObject * i_oObj1 = NULL; int row = 0; int col = 0; if (!PyArg_ParseTuple(i_oArgs, "Oii", &i_oObj1, &row, &col)) { Q_ASSERT(false); return NULL; } bind_node *l_oParent = (bind_node*) PyCObject_AsVoidPtr(i_oObj1); Q_ASSERT(l_oParent); QString content = l_oParent->tbl_cell(row, col); return from_qstring(content); } PyObject *Node_child_count(PyObject *i_s, PyObject *i_oArgs) { PyObject * i_oObj1 = NULL; if (!PyArg_ParseTuple(i_oArgs, "O", &i_oObj1)) { Q_ASSERT(false); return NULL; } bind_node *l_oParent = (bind_node*) PyCObject_AsVoidPtr(i_oObj1); int num = l_oParent->child_count(); return Py_BuildValue("i", num); } PyObject *Node_num_rows(PyObject *i_s, PyObject *i_oArgs) { PyObject * i_oObj1 = NULL; if (!PyArg_ParseTuple(i_oArgs, "O", &i_oObj1)) { Q_ASSERT(false); return NULL; } bind_node *l_oParent = (bind_node*) PyCObject_AsVoidPtr(i_oObj1); int num = l_oParent->num_rows(); return Py_BuildValue("i", num); } PyObject *Node_num_cols(PyObject *i_s, PyObject *i_oArgs) { PyObject * i_oObj1 = NULL; if (!PyArg_ParseTuple(i_oArgs, "O", &i_oObj1)) { Q_ASSERT(false); return NULL; } bind_node *l_oParent = (bind_node*) PyCObject_AsVoidPtr(i_oObj1); int l_iNum = l_oParent->num_cols(); return Py_BuildValue("i", l_iNum); } PyObject *Node_get_val(PyObject *i_s, PyObject *i_oArgs) { PyObject *i_oObj1 = NULL; PyObject *l_oObj2 = NULL; if (!PyArg_ParseTuple(i_oArgs, "OO", &i_oObj1, &l_oObj2)) { Q_ASSERT(false); return NULL; } bind_node* l_o = (bind_node*) PyCObject_AsVoidPtr(i_oObj1); Q_ASSERT(l_o); QString l_sCmd = from_unicode(l_oObj2); QString l_s = l_o->get_val(l_sCmd); return from_qstring(l_s); } PyObject *Node_set_val(PyObject *i_s, PyObject *i_oArgs) { qDebug()<<"set val is not ready"; PyObject *i_oObj1 = NULL; PyObject *l_oObj2 = NULL; PyObject *l_oObj3 = NULL; if (!PyArg_ParseTuple(i_oArgs, "OOO", &i_oObj1, &l_oObj2, &l_oObj3)) { Q_ASSERT(false); return NULL; } bind_node* l_o = (bind_node*) PyCObject_AsVoidPtr(i_oObj1); Q_ASSERT(l_o); QString l_sKey = from_unicode(l_oObj2); QString val = from_unicode(l_oObj3); l_o->set_val(l_sKey, val); return Py_None; } PyObject *Node_get_var(PyObject *i_s, PyObject *i_oArgs) { PyObject *i_oObj1 = NULL; if (!PyArg_ParseTuple(i_oArgs, "O", &i_oObj1)) { Q_ASSERT(false); return NULL; } QString l_sCmd = from_unicode(i_oObj1); QString l_s = bind_node::get_var(l_sCmd); return from_qstring(l_s); } PyObject *Node_set_var(PyObject *i_s, PyObject *i_oArgs) { PyObject *i_oObj1 = NULL; PyObject *l_oObj2 = NULL; if (!PyArg_ParseTuple(i_oArgs, "OO", &i_oObj1, &l_oObj2)) { Q_ASSERT(false); return NULL; } QString l_sKey = from_unicode(i_oObj1); QString l_sVal = from_unicode(l_oObj2); bind_node::set_var(l_sKey, l_sVal); return Py_None; } PyObject *Node_set_result(PyObject *i_s, PyObject *i_oArgs) { PyObject *i_oObj1 = NULL; PyObject *l_oObj2 = NULL; if (!PyArg_ParseTuple(i_oArgs, "OO", &i_oObj1, &l_oObj2)) { Q_ASSERT(false); return NULL; } QString l_sKey = from_unicode(i_oObj1); QString l_sVal = from_unicode(l_oObj2); bind_node::set_result(l_sKey, l_sVal); return Py_None; } PyObject *Node_protectXML(PyObject *i_s, PyObject *i_oArgs) { PyObject *i_oObj1 = NULL; if (!PyArg_ParseTuple(i_oArgs, "O", &i_oObj1)) { Q_ASSERT(false); return NULL; } QString l_sKey = from_unicode(i_oObj1); QString l_sRet = bind_node::protectXML(l_sKey); return from_qstring(l_sRet); } PyObject *Node_protectHTML(PyObject *i_s, PyObject *i_oArgs) { PyObject *i_oObj1 = NULL; if (!PyArg_ParseTuple(i_oArgs, "O", &i_oObj1)) { Q_ASSERT(false); return NULL; } QString l_sKey = from_unicode(i_oObj1); QString l_sRet = bind_node::protectHTML(l_sKey); return from_qstring(l_sRet); } PyObject *Node_get_item_ids(PyObject *i_s, PyObject *i_oArgs) { QString ids = bind_node::get_item_ids(); return from_qstring(ids); } PyObject *Node_get_item_by_id(PyObject *i_s, PyObject *i_oArgs) { int id = 0; if (!PyArg_ParseTuple(i_oArgs, "i", &id)) { Q_ASSERT(false); return NULL; } bind_node *l_oFils = bind_node::get_item_by_id(id); Q_ASSERT(l_oFils); return PyCObject_FromVoidPtr(l_oFils, NULL); } static PyMethodDef methods[] = { // node methods {"child_count", Node_child_count, METH_VARARGS, NULL}, {"child_num", Node_child_num, METH_VARARGS, NULL}, {"get_val", Node_get_val, METH_VARARGS, NULL}, {"set_val", Node_set_val, METH_VARARGS, NULL}, // cells {"num_rows", Node_num_rows, METH_VARARGS, NULL}, {"num_cols", Node_num_cols, METH_VARARGS, NULL}, {"get_cell", Node_get_cell, METH_VARARGS, NULL}, // static methods {"instance", Node_instance, METH_VARARGS, NULL}, {"get_var", Node_get_var, METH_VARARGS, NULL}, {"set_var", Node_set_var, METH_VARARGS, NULL}, {"set_result", Node_set_result, METH_VARARGS, NULL}, {"get_item_ids", Node_get_item_ids, METH_VARARGS, NULL}, {"get_item_by_id", Node_get_item_by_id, METH_VARARGS, NULL}, // utilities {"protectXML", Node_protectXML, METH_VARARGS, NULL}, {"protectHTML", Node_protectHTML, METH_VARARGS, NULL}, { NULL, NULL, 0, NULL } }; int init_py() { if (Py_IsInitialized()) return 1; Py_Initialize(); Py_InitModule("sembind", methods); QFile l_o(SEMANTIK_DIR "/sembind.py"); if (!l_o.open(QIODevice::ReadOnly)) { return 0; } QByteArray l_oBa = l_o.readAll(); l_o.close(); PyRun_SimpleString(l_oBa.constData()); return 1; } semantik-0.9.5/src/browser.cpp000664 000000 000000 00000001746 12732552614 016315 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include "browser.h" #include #include #include browser::browser(QWidget *w) : QWebView(w) { setContextMenuPolicy(Qt::DefaultContextMenu); m_oMenu = NULL; } void browser::contextMenuEvent(QContextMenuEvent * event) { if (!m_oMenu) { m_oMenu = new QMenu(this); m_oMenu->addAction(pageAction(QWebPage::Reload)); QAction *toggle = new QAction(trUtf8("Toggle fullscreen"), this); connect(toggle, SIGNAL(triggered()), this, SLOT(toggleFullScreen())); m_oMenu->addAction(toggle); } m_oMenu->popup(event->globalPos()); } void browser::toggleFullScreen() { if (isFullScreen()) { setWindowModality(Qt::NonModal); //setFullScreen(false); setWindowState(Qt::WindowNoState); setWindowFlags(Qt::Widget); show(); } else { setWindowFlags(Qt::Window); //setFullScreen(true); setWindowState(Qt::WindowFullScreen); setWindowModality(Qt::ApplicationModal); show(); } } #include "browser.moc" semantik-0.9.5/src/browser.h000664 000000 000000 00000000471 12732552614 015754 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #ifndef _BROWSER_H #define _BROWSER_H class QMenu; class browser: public QWebView { Q_OBJECT public: browser(QWidget*); void contextMenuEvent(QContextMenuEvent * event); public slots: void toggleFullScreen(); private: QMenu * m_oMenu; }; #endif semantik-0.9.5/src/canvas_chain.cpp000664 000000 000000 00000001314 12732552614 017236 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include "CON.h" #include "canvas_chain.h" #include "box_view.h" #include "data_item.h" #include #define PAD 1 canvas_chain::canvas_chain(canvas_view* i_oParent) : QGraphicsRectItem() { m_oParent = i_oParent; setVisible(false); setRect(0, 0, 10, 10); } void canvas_chain::paint(QPainter *i_oPainter, const QStyleOptionGraphicsItem *option, QWidget * i_oW) { QPen l_oPen(Qt::SolidLine); l_oPen.setColor(Qt::black); l_oPen.setWidth(1); i_oPainter->setPen(l_oPen); i_oPainter->drawLine(QPoint(PAD, 5), QPoint(10-PAD, 5)); i_oPainter->drawLine(QPoint(5, PAD), QPoint(5, 10-PAD)); } semantik-0.9.5/src/canvas_chain.h000664 000000 000000 00000001003 12732552614 016676 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef CANVAS_CHAIN_H #define CANVAS_CHAIN_H #include #include #include #include #include #include "con.h" #include "canvas_view.h" class canvas_chain : public QGraphicsRectItem { public: canvas_chain(canvas_view *i_oGraphWidget); canvas_view *m_oParent; int type() const { return CANVAS_CHAIN_T; } void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); }; #endif // CANVAS_CHAIN_H semantik-0.9.5/src/canvas_flag.cpp000664 000000 000000 00000002646 12732552614 017076 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include "data_item.h" #include "sem_mediator.h" #include "con.h" #include "canvas_item.h" #include "canvas_flag.h" #include "canvas_view.h" canvas_flag::canvas_flag(canvas_view *i_oGraphWidget, canvas_item *i_oFrom) : QGraphicsRectItem(), m_oGraph(i_oGraphWidget) { setFlags(NULL); m_oItem = i_oFrom; setRect(0, 0, 19, 19); /* set the z value to 51 */ setZValue(51); i_oGraphWidget->scene()->addItem(this); setParentItem(m_oItem); setCacheMode(QGraphicsItem::DeviceCoordinateCache); } void canvas_flag::paint(QPainter *i_oPainter, const QStyleOptionGraphicsItem *i_oOption, QWidget * i_oW) { int l_iIndex = 0; for (int i=0; im_oFlags.size(); ++i) { if (this == m_oItem->m_oFlags[i]) { l_iIndex = i; break; } } data_item *l_oDataItem = m_oGraph->m_oMediator->m_oItems.value(m_oItem->Id()); QString l_sName = l_oDataItem->m_oFlags[l_iIndex]; for (int i=0; im_oMediator->m_oFlagSchemes.size(); ++i) { if (m_oGraph->m_oMediator->m_oFlagSchemes[i]->m_sId == l_sName) { QSvgRenderer *l_o = m_oGraph->m_oMediator->m_oFlagSchemes[i]->_renderer(); l_o->render(i_oPainter, boundingRect()); break; } } } #ifdef WAF #else #include "canvas_view.moc" #endif semantik-0.9.5/src/canvas_flag.h000664 000000 000000 00000001100 12732552614 016523 0ustar00rootroot000000 000000 /// Thomas Nagy 2007-2015 GPLV3 #ifndef CANVAS_FLAG_H #define CANVAS_FLAG_H #include #include #include \ "con.h" class QColor; class QString; class QGraphicsSceneMouseEvent; class canvas_view; class canvas_item; class canvas_flag: public QGraphicsRectItem { public: canvas_flag(canvas_view *i_oGraphWidget, canvas_item *i_oFrom); int type() const { return CANVAS_FLAG_T; } canvas_view *m_oGraph; canvas_item *m_oItem; void paint(QPainter *i_oPainter, const QStyleOptionGraphicsItem *i_oOption, QWidget * i_oW); }; #endif semantik-0.9.5/src/canvas_item.cpp000664 000000 000000 00000017442 12732552614 017123 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "canvas_chain.h" #include "canvas_flag.h" #include "color_scheme.h" #include "sem_mediator.h" #include "con.h" #include "data_item.h" #include "canvas_sort.h" #include "canvas_link.h" #include "canvas_item.h" #include "canvas_view.h" #include "canvas_sort_toggle.h" #define square_size 5 #define item_padding 7. QColor canvas_item::s_oColorRect = QColor("#00CCCC"); // QColor(0, 0, 255, 255); QColor canvas_item::s_oColorRectEd = QColor("#ee6060"); QColor canvas_item::s_oColorRoot = QColor("#FFFCD5"); QColor canvas_item::s_oColorLeaf = QColor(171, 251, 199); QColor canvas_item::s_oColorSelect = QColor(255, 255, 255, 240); canvas_item::canvas_item(canvas_view *i_oGraphWidget, int i_iId) : QGraphicsTextItem(), m_oGraph(i_oGraphWidget) { //QTextOption l_oOpt; //l_oOpt.setWrapMode(QTextOption::WordWrap); //setDefaultTextOption(l_oOpt); m_iId = i_iId; m_bEdit = false; m_iNum = 1; setPlainText(m_oGraph->m_oMediator->m_oItems.value(Id())->m_sSummary); //adjustSize(); m_oSort = new canvas_sort(i_oGraphWidget, this); m_oChain = new canvas_chain(i_oGraphWidget); m_oChain->setParentItem(this); m_oSortToggle = new canvas_sort_toggle(i_oGraphWidget); m_oSortToggle->setParentItem(this); setFlags(ItemIsMovable | ItemIsSelectable); setZValue(100); //setRect(0, 0, 20, 20); //m_oColor = QColor("#FFFCD5"); m_oColor = s_oColorRoot; //"#ABFBC7"); m_oColorBackup = m_oColor; i_oGraphWidget->scene()->addItem(this); m_oChain->setPos(boundingRect().width() + 2, 0); m_oSortToggle->setPos(boundingRect().width() + 2, m_oChain->boundingRect().height() + 2); update_flags(); setCacheMode(QGraphicsItem::DeviceCoordinateCache); } // (i_oEv == QKeySequence::DeleteEndOfWord) //void canvas_item::keyReleaseEvent(QKeyEvent* i_oEv) // i_oEv->key() == Qt::Key_Enter || i_oEv->key() == Qt::Key_Return) void canvas_item::set_parent(canvas_item * i_o) { m_oParent = i_o; } QVariant canvas_item::itemChange(GraphicsItemChange i_oChange, const QVariant &i_oValue) { if (scene()) { if (i_oChange == ItemPositionHasChanged) { update_links(); } else if (i_oChange == ItemSelectedHasChanged) { m_oChain->setVisible(isSelected()); m_oSortToggle->setVisible(isSelected()); } } return QGraphicsItem::itemChange(i_oChange, i_oValue); } void canvas_item::add_link(canvas_link* i_oL) { update_color(); m_oLinks.push_back(i_oL); } void canvas_item::rm_link(canvas_link* i_oLink2) { update_color(); m_oLinks.removeAll(i_oLink2); } void canvas_item::update_data() { data_item *l_oItem = m_oGraph->m_oMediator->m_oItems.value(Id()); if (l_oItem->m_iXX < -10000.0) { l_oItem->m_iXX = m_oGraph->m_oLastPoint.x(); l_oItem->m_iYY = m_oGraph->m_oLastPoint.y(); } setPos(QPointF(l_oItem->m_iXX, l_oItem->m_iYY)); setPlainText(l_oItem->m_sSummary); adjustSize(); update_links(); update_flags(); } void canvas_item::update_color() { int l_oP = m_oGraph->m_oMediator->parent_of(Id()); if (l_oP < 0) m_oColor = s_oColorRoot; else m_oColor = s_oColorLeaf; m_oColorBackup = m_oColor; } void canvas_item::update_links() { foreach (canvas_link* l_oLink, m_oLinks) { l_oLink->update_pos(); } } void canvas_item::update_flags() { data_item *l_oItem = m_oGraph->m_oMediator->m_oItems.value(Id()); int l_iDiff = l_oItem->m_oFlags.size() - m_oFlags.size(); while (l_iDiff > 0) { l_iDiff--; canvas_flag *l_o = new canvas_flag(m_oGraph, this); m_oFlags.push_back(l_o); l_o->show(); } while (l_iDiff < 0) { l_iDiff++; canvas_flag *l_o = m_oFlags.takeFirst(); l_o->hide(); delete l_o; } qreal l_iWidth = textWidth(); for (int i=0; isetPos(l_oF); l_o->update(); } } canvas_item::~canvas_item() { delete m_oChain; delete m_oSortToggle; } void canvas_item::mousePressEvent(QGraphicsSceneMouseEvent* e) { setZValue(100); QGraphicsTextItem::mousePressEvent(e); } void canvas_item::mouseReleaseEvent(QGraphicsSceneMouseEvent* e) { setZValue(99); QGraphicsTextItem::mouseReleaseEvent(e); } void canvas_item::keyPressEvent(QKeyEvent* e) { // FIXME Qt Sucks if (e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return) { m_oGraph->m_oEditAction->activate(QAction::Trigger); return; } else if (e->key() == Qt::Key_Escape) { m_oGraph->m_oCancelEditAction->activate(QAction::Trigger); return; } QGraphicsTextItem::keyPressEvent(e); adjustSize(); update_links(); } void canvas_item::adjustSize() { QGraphicsTextItem::adjustSize(); QRectF r = boundingRect(); m_oChain->setPos(r.width() + 2, 0); m_oSortToggle->setPos(r.width() + 2, m_oChain->boundingRect().height() + 2); // FIXME we do not really track the size of the item data_item *l_oItem = m_oGraph->m_oMediator->m_oItems.value(Id()); l_oItem->m_iWW = r.width(); l_oItem->m_iHH = r.height(); } void canvas_item::keyReleaseEvent(QKeyEvent* e) { if (e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return || e->key() == Qt::Key_Escape) { return; } QGraphicsTextItem::keyReleaseEvent(e); } QRectF canvas_item::boundingRect() const { QTextDocument *doc = document(); QRectF rect(QPointF(0, 0), doc->size()); return rect.adjusted(-OFF, -OFF, OFF, OFF); } QPainterPath canvas_item::opaqueArea() const { return shape(); } void canvas_item::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->save(); QRectF l_oRect = boundingRect().adjusted(PAD, PAD, -PAD, -PAD); data_item *l_oItem = m_oGraph->m_oMediator->m_oItems.value(Id()); color_scheme l_oColorScheme = l_oItem->get_color_scheme(); QPen l_oPen = QPen(Qt::SolidLine); l_oPen.setColor(l_oColorScheme.m_oBorderColor); if (isSelected()) l_oPen.setStyle(Qt::DotLine); l_oPen.setCosmetic(true); painter->setPen(l_oPen); if (textInteractionFlags() & Qt::TextEditorInteraction) { painter->setBrush(Qt::white); } else { if (m_oGraph->m_oMediator->parent_of(Id()) <= 0 && l_oItem->m_iColor > 1) { QLinearGradient l_oGradient(l_oRect.right()-40, 0, l_oRect.right()-10, 0); l_oGradient.setColorAt(0., l_oColorScheme.m_oInnerColor); l_oGradient.setColorAt(1., l_oItem->get_color_scheme_raw().m_oInnerColor); QBrush l_oBrush(l_oGradient); painter->setBrush(l_oBrush); } else { painter->setBrush(l_oColorScheme.m_oInnerColor); } } painter->drawRoundRect(l_oRect, 20, 20); // if there is text, draw a triangle on the top-right corner if (m_oGraph->m_oMediator->m_oItems.value(Id())->m_sText.length() > 0) { const QPointF points[4] = { l_oRect.topRight(), l_oRect.topRight()-QPointF(5, 0), l_oRect.topRight()+QPointF(0, 5), }; painter->setBrush(l_oColorScheme.m_oBorderColor); painter->drawPolygon(points, 3); painter->setBrush(l_oColorScheme.m_oInnerColor); } //painter->translate(5, 5); QAbstractTextDocumentLayout::PaintContext ctx; ctx.palette.setColor(QPalette::Text, Qt::black); // white on black kde themes if (textInteractionFlags() & Qt::TextEditorInteraction) { QTextCursor cursor = textCursor(); ctx.cursorPosition = cursor.position(); QAbstractTextDocumentLayout::Selection selection; selection.cursor = cursor; selection.format.setBackground(ctx.palette.brush(QPalette::Active, QPalette::Highlight)); selection.format.setForeground(ctx.palette.brush(QPalette::Active, QPalette::HighlightedText)); ctx.selections.append(selection); } ctx.clip = l_oRect; document()->documentLayout()->draw(painter, ctx); painter->restore(); } semantik-0.9.5/src/canvas_item.h000664 000000 000000 00000004067 12732552614 016567 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef CANVAS_ITEM_H #define CANVAS_ITEM_H #include "con.h" #include #include #define OFF 3 #define PAD 1 class QTextDocument; class QColor; class QString; class QSvgRenderer; class QGraphicsSceneMouseEvent; class canvas_view; class canvas_link; class canvas_sort; class canvas_flag; class canvas_chain; class canvas_sort_toggle; class canvas_item: public QGraphicsTextItem { public: canvas_item(canvas_view *i_oGraphWidget, int i_iId); ~canvas_item(); int type() const { return CANVAS_ITEM_T; } QRectF boundingRect() const; void adjustSize(); void update_flags(); QList m_oLinks; void add_link(canvas_link*); void rm_link(canvas_link*); /*int get_id() const {return m_iID;} QString get_label() {return m_sLabel;} void set_ID(int i) {m_iID=i;} */ QVariant itemChange(GraphicsItemChange i_oChange, const QVariant &i_oValue); QPainterPath opaqueArea() const; QColor get_color() {return m_oColor;} void set_color(QColor c) {m_oColor=c;} void set_parent(canvas_item *); //void adjustSize(); int Id() const {return m_iId;}; bool m_bEdit; int m_iNum; void mousePressEvent(QGraphicsSceneMouseEvent* e); void mouseReleaseEvent(QGraphicsSceneMouseEvent* e); void keyPressEvent(QKeyEvent*); void keyReleaseEvent(QKeyEvent*); void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget); static QColor s_oColorRect; static QColor s_oColorRoot; static QColor s_oColorLeaf; static QColor s_oColorSelect; static QColor s_oColorRectEd; void update_data(); void update_links(); void update_color(); QList m_oFlags; inline qreal const x2() {return x() + boundingRect().width();} inline qreal const y2() {return y() + boundingRect().height();} canvas_view *m_oGraph; canvas_item *m_oParent; canvas_sort *m_oSort; canvas_chain *m_oChain; canvas_sort_toggle *m_oSortToggle; int m_iId; QColor m_oColor; QColor m_oColorBackup; QString m_sLabel; //QSvgRenderer *m_oRenderer; }; #endif semantik-0.9.5/src/canvas_link.cpp000664 000000 000000 00000010157 12732552614 017116 0ustar00rootroot000000 000000 /// Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include "sem_mediator.h" #include "con.h" #include "canvas_item.h" #include "canvas_link.h" #include "canvas_view.h" canvas_link::canvas_link(canvas_view *i_oGraphWidget, canvas_item *i_oFrom, canvas_item *i_oTo) : QGraphicsPathItem(), m_oGraph(i_oGraphWidget) { setFlags(NULL); m_oFrom = i_oFrom; m_oTo = i_oTo; m_bSel = false; m_oFrom->add_link(this); m_oTo->add_link(this); setZValue(50); //setRect(0, 0, 20, 20); //m_oColor = QColor("#FFFCD5"); //m_oColor = QColor("#ABFBC7"); m_oColor = QColor("#000000"); setBrush(m_oColor); /* QPen l_oPen; l_oPen.setWidth(5); setPen(l_oPen); */ i_oGraphWidget->scene()->addItem(this); //setParentItem(m_oFrom); setCacheMode(QGraphicsItem::DeviceCoordinateCache); } void canvas_link::rm_link() { m_oFrom->rm_link(this); m_oTo->rm_link(this); } void canvas_link::update_pos() { if (m_oFrom->m_oGraph->m_oMediator->m_iConnType == 0) { update_triangle(); } else { update_spline(); } } void canvas_link::update_selected() { bool l_b = (m_oFrom->isSelected() || m_oTo->isSelected()); if (m_bSel != l_b) { m_bSel = l_b; if (m_bSel) setBrush(QBrush(Qt::yellow)); else setBrush(Qt::black); } } void canvas_link::update_triangle() { QRectF l_oR1 = m_oFrom->boundingRect(); QRectF l_oR2 = m_oTo->boundingRect(); double _x1 = m_oFrom->x() + l_oR1.width()/2. - OFF; double _y1 = m_oFrom->y() + l_oR1.height()/2. - OFF; double _x2 = m_oTo->x() + l_oR2.width()/2. - OFF; double _y2 = m_oTo->y() + l_oR2.height()/2. - OFF; double _X1 = _x2 - _x1; double _Y1 = _y2 - _y1; double l_oDist = 1; double _coeff = 0; if (_Y1*_Y1>_X1*_X1) _coeff = _Y1*_Y1/(_Y1*_Y1+_X1*_X1); else _coeff = 1 - _X1*_X1/(_Y1*_Y1+_X1*_X1); if (isnan(_coeff)) { QPolygonF _polygon; _polygon <m_oGraph->m_oMediator->m_dTriSize; QPolygonF _polygon; _polygon <boundingRect(); QRectF l_oR2 = m_oTo->boundingRect(); double _x1 = m_oFrom->x() + l_oR1.width()/2. - OFF; double _y1 = m_oFrom->y() + l_oR1.height()/2. - OFF; double _x2 = m_oTo->x() + l_oR2.width()/2. - OFF; double _y2 = m_oTo->y() + l_oR2.height()/2. - OFF; double _X1 = _x2 - _x1; double _Y1 = _y2 - _y1; double l_oDist = 1; double _coeff = 0; if (_Y1*_Y1>_X1*_X1) _coeff = _Y1*_Y1/(_Y1*_Y1+_X1*_X1); else _coeff = 1 - _X1*_X1/(_Y1*_Y1+_X1*_X1); if (isnan(_coeff)) { QPolygonF _polygon; _polygon < #include #include "con.h" class QColor; class QString; class QGraphicsSceneMouseEvent; class canvas_view; class canvas_item; class canvas_link: public QGraphicsPathItem { public: canvas_link(canvas_view *i_oGraphWidget, canvas_item *i_oFrom, canvas_item * i_oTo); int type() const { return CANVAS_LINK_T; } QColor get_color() {return m_oColor;} void set_color(QColor c) {m_oColor=c;} void rm_link(); void update_selected(); bool m_bSel; canvas_view *m_oGraph; int m_iID; QColor m_oColor; QString m_sLabel; void update_pos(); void update_spline(); void update_triangle(); canvas_item *m_oFrom; canvas_item *m_oTo; }; #endif semantik-0.9.5/src/canvas_sort.cpp000664 000000 000000 00000002452 12732552614 017147 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include "con.h" #include "canvas_item.h" #include "canvas_sort.h" #include "canvas_view.h" #include "sem_mediator.h" canvas_sort::canvas_sort(canvas_view *i_oGraphWidget, canvas_item *i_oFrom) : QGraphicsEllipseItem(), m_oGraph(i_oGraphWidget) { m_oFrom = i_oFrom; setZValue(123); //setRect(0, 0, 20, 20); //m_oColor = QColor("#FFFCD5"); //m_oColor = QColor("#ABFBC7"); hide(); QPen l_oPen; l_oPen.setWidth(1); setPen(l_oPen); QRectF l_oRect; l_oRect.setTopLeft(QPointF(0, 0)); l_oRect.setWidth(20); l_oRect.setHeight(20); setRect(l_oRect); setBrush(QColor(255, 255, 0)); setPos(QPointF(-30, 0)); setParentItem(m_oFrom); } void canvas_sort::paint(QPainter *i_oPainter, const QStyleOptionGraphicsItem *_option, QWidget * i_oW) { if (m_oGraph->m_oMediator->m_iSortCursor + 1 > m_oFrom->m_iNum) { i_oPainter->setBrush(QColor(0, 255, 0)); } else { i_oPainter->setBrush(QColor(255, 255, 0)); } i_oPainter->drawEllipse(boundingRect().adjusted(1, 1, -1, -1)); i_oPainter->drawText(boundingRect().translated(0, 1), Qt::AlignCenter, QString::number(m_oFrom->m_iNum)); } semantik-0.9.5/src/canvas_sort.h000664 000000 000000 00000001043 12732552614 016607 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef CANVAS_SORT_H #define CANVAS_SORT_H #include #include "con.h" #include class QColor; class QString; class QGraphicsSceneMouseEvent; class canvas_view; class canvas_item; class canvas_sort: public QGraphicsEllipseItem { public: canvas_sort(canvas_view *i_oGraphWidget, canvas_item *i_oFrom); int type() const { return CANVAS_SORT_T; } canvas_view *m_oGraph; canvas_item *m_oFrom; void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); }; #endif semantik-0.9.5/src/canvas_sort_toggle.cpp000664 000000 000000 00000001345 12732552614 020510 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include "CON.h" #include "canvas_sort_toggle.h" #include "box_view.h" #include "data_item.h" #include #define PAD 1 canvas_sort_toggle::canvas_sort_toggle(canvas_view* i_oParent) : QGraphicsRectItem() { m_oParent = i_oParent; setVisible(false); setRect(0, 0, 10, 10); } void canvas_sort_toggle::paint(QPainter *i_oPainter, const QStyleOptionGraphicsItem *option, QWidget * i_oW) { QPen l_oPen(Qt::SolidLine); l_oPen.setColor(Qt::black); l_oPen.setWidth(1); i_oPainter->setPen(l_oPen); i_oPainter->setBrush(Qt::yellow); // yolo i_oPainter->drawEllipse(boundingRect().adjusted(PAD, PAD, -PAD, -PAD)); } semantik-0.9.5/src/canvas_sort_toggle.h000664 000000 000000 00000000763 12732552614 020160 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef CANVAS_SORT_TOGGLE_H #define CANVAS_SORT_TOGGLE_H #include #include #include #include #include #include "con.h" #include "canvas_view.h" class canvas_sort_toggle : public QGraphicsRectItem { public: canvas_sort_toggle(canvas_view *i_oGraphWidget); canvas_view *m_oParent; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); }; #endif // CANVAS_SORT_TOGGLE_H semantik-0.9.5/src/canvas_view.cpp000664 000000 000000 00000135135 12732552614 017137 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include "canvas_flag.h" #include "data_item.h" #include #include "sem_mediator.h" #include "canvas_view.h" #include #include #include #include #include #include #include #include #include #include #include #include "canvas_item.h" #include "canvas_link.h" #include #include #include #include "canvas_sort.h" #include #include "canvas_sort_toggle.h" #include "semantik.h" #include #include #include "canvas_chain.h" #include #include #include #include #include #include #include #include #include #include "export_map_dialog.h" #include "kurlrequester.h" #include #include "mem_command.h" #include #include #define PIPAD 20 canvas_view::canvas_view(QWidget *i_oWidget, sem_mediator *i_oControl) : QGraphicsView(i_oWidget) { m_oSemantikWindow = i_oWidget; m_bDisableGradient = false; m_oLastPoint = QPointF(0, 0); //m_oRubbery = new QRubberBand(QRubberBand::Rectangle, this); //m_oRubbery->setGeometry(QRect(0, 0, 0, 0)); QGraphicsScene *l_oScene = new QGraphicsScene(this); l_oScene->setSceneRect(-400, -400, 400, 400); setScene(l_oScene); //setCacheMode(CacheBackground); setRenderHint(QPainter::Antialiasing); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); setMinimumSize(200, 200); m_oMediator = i_oControl; m_bPressed = false; m_bScroll = false; m_oRubberLine = new rubber_line(QRubberBand::Line, this); QBrush l_oBrush = QBrush(); //QColor l_oColor = QColor("#000077"); //l_oColor.setAlpha(200); QColor l_oColor = QColor(0, 0, 150, 100); l_oBrush.setColor(l_oColor); //m_oRubber->setBrush(l_oBrush); QAction *l_o = NULL; m_oAddItemAction = new QAction(trUtf8("Add an element"), this); m_oAddItemAction->setShortcut(notr("Ctrl+Return")); connect(m_oAddItemAction, SIGNAL(triggered()), this, SLOT(slot_add_item())); addAction(m_oAddItemAction); m_oDeleteAction = new QAction(trUtf8("Delete selection"), this); m_oDeleteAction->setShortcut(notr("Del")); connect(m_oDeleteAction, SIGNAL(triggered()), this, SLOT(slot_delete())); addAction(m_oDeleteAction); m_oInsertSiblingAction = l_o = new QAction(trUtf8("Insert a sibling"), this); l_o->setShortcut(notr("Shift+Return")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_add_sibling())); addAction(l_o); m_oMoveUpAction = l_o = new QAction(trUtf8("Move up"), this); l_o->setShortcut(notr("Alt+Up")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_move())); addAction(l_o); l_o->setData(QVariant(0)); m_oMoveDownAction = l_o = new QAction(trUtf8("Move down"), this); l_o->setShortcut(notr("Alt+Down")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_move())); addAction(l_o); l_o->setData(QVariant(1)); m_oMoveLeftAction = l_o = new QAction(trUtf8("Move left"), this); l_o->setShortcut(notr("Alt+Left")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_move())); addAction(l_o); l_o->setData(QVariant(2)); m_oMoveRightAction = l_o = new QAction(trUtf8("Move right"), this); l_o->setShortcut(notr("Alt+Right")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_move())); addAction(l_o); l_o->setData(QVariant(3)); m_oSelectUpAction = l_o = new QAction(trUtf8("Select up"), this); l_o->setShortcut(notr("Up")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_sel())); addAction(l_o); l_o->setData(QVariant(0)); m_oSelectDownAction = l_o = new QAction(trUtf8("Select down"), this); l_o->setShortcut(notr("Down")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_sel())); addAction(l_o); l_o->setData(QVariant(1)); m_oSelectLeftAction = l_o = new QAction(trUtf8("Select left"), this); l_o->setShortcut(notr("Left")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_sel())); addAction(l_o); l_o->setData(QVariant(2)); m_oSelectRightAction = l_o = new QAction(trUtf8("Select right"), this); l_o->setShortcut(notr("Right")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_sel())); addAction(l_o); l_o->setData(QVariant(3)); m_oSelectSubtreeAction = new QAction(trUtf8("Select subtree"), this); connect(m_oSelectSubtreeAction, SIGNAL(triggered()), this, SLOT(slot_select_subtree())); addAction(m_oSelectSubtreeAction); m_oNextRootAction = l_o = new QAction(trUtf8("Next root"), this); l_o->setShortcut(notr("PgDown")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_next_root())); addAction(l_o); l_o->setData(QVariant(1)); m_oEditAction = new QAction(trUtf8("Toggle edit"), this); m_oEditAction->setShortcut(notr("Return")); addAction(m_oEditAction); connect(m_oEditAction, SIGNAL(triggered()), this, SLOT(slot_toggle_edit())); m_oCancelEditAction = new QAction(trUtf8("Cancel edit"), this); m_oCancelEditAction->setShortcut(notr("Escape")); addAction(m_oCancelEditAction); connect(m_oCancelEditAction, SIGNAL(triggered()), this, SLOT(slot_cancel_edit())); m_oCancelEditAction->setEnabled(false); m_oMenu = new QMenu(this); m_oMenu->addAction(m_oAddItemAction); //m_oMenu->addAction(m_oEditAction); m_oMenu->addAction(m_oDeleteAction); m_oMenu->addAction(m_oSelectSubtreeAction); QAction *fullAction = new QAction(trUtf8("Toggle fullscreen"), this); connect(fullAction, SIGNAL(triggered()), this, SLOT(toggle_fullscreen())); addAction(l_o); m_oMenu->addAction(fullAction); m_oColorMenu = m_oMenu->addMenu(trUtf8("Colors")); //m_oDataMenu = m_oMenu->addMenu(trUtf8("Data type")); #define newAction(s, v, dest) dest = l_o = new QAction(s, this); \ connect(l_o, SIGNAL(triggered()), this, SLOT(slot_change_data())); \ addAction(l_o); l_o->setData(QVariant(v)); \ m_oMenu->addAction(l_o); \ l_o->setCheckable(true); m_oMenu->addSeparator(); newAction(trUtf8("Text"), VIEW_TEXT, m_oTextType); newAction(trUtf8("Diagram"), VIEW_DIAG, m_oDiagramType); newAction(trUtf8("Table"), VIEW_TABLE, m_oTableType); newAction(trUtf8("Image"), VIEW_IMG, m_oImageType); m_bDeleting = false; //connect(scene(), SIGNAL(selectionChanged()), this, SLOT(selection_changed())); // TODO check with m_bPressed setDragMode(QGraphicsView::RubberBandDrag); } void canvas_view::resizeEvent(QResizeEvent* e) { QGraphicsView::resizeEvent(e); QRect l_oRect = viewport()->rect(); QRectF ar = QRectF(mapToScene(l_oRect.topLeft()), mapToScene(l_oRect.bottomRight())); QRectF br = scene()->itemsBoundingRect(); br = br.united(ar); scene()->setSceneRect(br); } void canvas_view::check_selection() { if (m_bDeleting) return; QList lst; foreach(canvas_item* k, selection()) { lst.append(k->Id()); } // stupid set intersection QList unlst; foreach(data_item* x, m_oMediator->m_oItems.values()) { if (x->m_bSelected) { unlst.append(x->m_iId); } } foreach(int i, lst) { if (!unlst.contains(i)) goto undo; } foreach (int i, unlst) { if (!lst.contains(i)) goto undo; } mem_sel *sel; goto end; undo: sel = new mem_sel(m_oMediator); sel->sel = lst; sel->apply(); //qDebug()<<"selected"<data().toInt()) { case 0: m_oMediator->prev_root(); break; case 1: m_oMediator->next_root(); break; default: break; } QList sel = selection(); if (sel.size()==1) ensureVisible(sel[0]); } void canvas_view::edit_off() { canvas_item* sel = NULL; foreach (QGraphicsItem *tmp, items()) { if (tmp->type() == CANVAS_ITEM_T) { sel = (canvas_item*) tmp; if (sel->textInteractionFlags() & Qt::TextEditorInteraction) { sel->setTextInteractionFlags(Qt::NoTextInteraction); if (sel->toPlainText() == notr("")) { sel->setPlainText(QObject::trUtf8("Empty")); sel->update_links(); } if (sel->toPlainText() != (*m_oMediator + sel->Id())->m_sSummary) { mem_edit *ed = new mem_edit(m_oMediator); ed->newSummary = sel->toPlainText(); ed->apply(); } m_oAddItemAction->setEnabled(true); m_oInsertSiblingAction->setEnabled(true); m_oDeleteAction->setEnabled(true); m_oNextRootAction->setEnabled(true); m_oMoveUpAction->setEnabled(true); m_oMoveDownAction->setEnabled(true); m_oMoveLeftAction->setEnabled(true); m_oMoveRightAction->setEnabled(true); m_oSelectUpAction->setEnabled(true); m_oSelectDownAction->setEnabled(true); m_oSelectLeftAction->setEnabled(true); m_oSelectRightAction->setEnabled(true); m_oSelectSubtreeAction->setEnabled(true); m_oMediator->check_undo(true); } } } } void canvas_view::slot_toggle_edit() { if (!hasFocus()) { return; } canvas_item* sel = NULL; foreach (QGraphicsItem *tmp, items()) { if (tmp->type() == CANVAS_ITEM_T && tmp->isSelected()) { if (sel) { sel = NULL; break; } else { sel = (canvas_item*) tmp; } } } if (sel) { if (sel->textInteractionFlags() & Qt::TextEditorInteraction) { sel->setTextInteractionFlags(Qt::NoTextInteraction); if (sel->toPlainText() == notr("")) { sel->setPlainText(QObject::trUtf8("Empty")); sel->update(); // seems to update faster sel->update_links(); } if (sel->toPlainText() != (*m_oMediator + sel->Id())->m_sSummary) { mem_edit *ed = new mem_edit(m_oMediator); ed->newSummary = sel->toPlainText(); ed->apply(); } } else { sel->setTextInteractionFlags(Qt::TextEditorInteraction); if (sel->toPlainText() == QObject::trUtf8("Empty")) { sel->setPlainText(""); sel->update(); // seems to update faster sel->update_links(); } sel->setFocus(); m_oAddItemAction->setEnabled(false); m_oCancelEditAction->setEnabled(true); m_oInsertSiblingAction->setEnabled(false); m_oDeleteAction->setEnabled(false); m_oNextRootAction->setEnabled(false); m_oMoveUpAction->setEnabled(false); m_oMoveDownAction->setEnabled(false); m_oMoveLeftAction->setEnabled(false); m_oMoveRightAction->setEnabled(false); m_oSelectUpAction->setEnabled(false); m_oSelectDownAction->setEnabled(false); m_oSelectLeftAction->setEnabled(false); m_oSelectRightAction->setEnabled(false); m_oSelectSubtreeAction->setEnabled(false); m_oMediator->check_undo(false); return; } } m_oAddItemAction->setEnabled(true); m_oCancelEditAction->setEnabled(false); m_oInsertSiblingAction->setEnabled(true); m_oDeleteAction->setEnabled(true); m_oNextRootAction->setEnabled(true); m_oMoveUpAction->setEnabled(true); m_oMoveDownAction->setEnabled(true); m_oMoveLeftAction->setEnabled(true); m_oMoveRightAction->setEnabled(true); m_oSelectUpAction->setEnabled(true); m_oSelectDownAction->setEnabled(true); m_oSelectLeftAction->setEnabled(true); m_oSelectRightAction->setEnabled(true); m_oSelectSubtreeAction->setEnabled(true); m_oMediator->check_undo(true); } void canvas_view::slot_cancel_edit() { canvas_item* sel = NULL; foreach (QGraphicsItem *tmp, items()) { if (tmp->type() == CANVAS_ITEM_T && tmp->isSelected()) { if (sel) { sel = NULL; break; } else { sel = (canvas_item*) tmp; } } } if (sel && sel->textInteractionFlags() & Qt::TextEditorInteraction) { sel->setTextInteractionFlags(Qt::NoTextInteraction); sel->update_data(); } m_oAddItemAction->setEnabled(true); m_oCancelEditAction->setEnabled(false); m_oInsertSiblingAction->setEnabled(true); m_oDeleteAction->setEnabled(true); m_oNextRootAction->setEnabled(true); m_oMoveUpAction->setEnabled(true); m_oMoveDownAction->setEnabled(true); m_oMoveLeftAction->setEnabled(true); m_oMoveRightAction->setEnabled(true); m_oSelectUpAction->setEnabled(true); m_oSelectDownAction->setEnabled(true); m_oSelectLeftAction->setEnabled(true); m_oSelectRightAction->setEnabled(true); m_oSelectSubtreeAction->setEnabled(true); m_oMediator->check_undo(true); } void canvas_view::slot_move() { QList sel = selection(); if (sel.size() < 1) return; switch (((QAction*) QObject::sender())->data().toInt()) { case 0: move_sel(0, -20); break; case 1: move_sel(0, 20); break; case 2: move_sel(-20, 0); break; case 3: move_sel(20, 0); break; default: break; } } void canvas_view::slot_sel() { QList sel = selection(); if (sel.size() != 1) return; int l_iId = sel[0]->Id(); switch (((QAction*) QObject::sender())->data().toInt()) { case 0: m_oMediator->select_item_keyboard(l_iId, 3); break; case 1: m_oMediator->select_item_keyboard(l_iId, 4); break; case 2: m_oMediator->select_item_keyboard(l_iId, 1); break; case 3: m_oMediator->select_item_keyboard(l_iId, 2); break; default: break; } if (sel.size()==1) ensureVisible(sel[0]); } void canvas_view::slot_add_item() { QList sel = selection(); int l_iId = NO_ITEM; if (sel.size() == 1) { l_iId = sel[0]->Id(); } deselect_all(); data_item *p = m_oMediator->m_oItems.value(l_iId); mem_add *add = new mem_add(m_oMediator); add->init(); add->parent = l_iId; if (p) { add->item->m_iXX = p->m_iXX + 30; add->item->m_iYY = p->m_iYY + 30; } else { add->item->m_iXX = m_oLastPoint.x(); add->item->m_iYY = m_oLastPoint.y(); } add->apply(); if (m_oMediator->m_iAutoReorg) { reorganize(); } } void canvas_view::slot_add_sibling() { QList sel = selection(); if (sel.size() != 1) return; int l_iId = m_oMediator->parent_of(sel[0]->Id()); if (l_iId == NO_ITEM) return; deselect_all(); data_item *p = m_oMediator->m_oItems[l_iId]; mem_add *add = new mem_add(m_oMediator); add->init(); add->parent = l_iId; add->item->m_iXX = p->m_iXX + 30; add->item->m_iYY = p->m_iYY + 30; add->apply(); if (m_oMediator->m_iAutoReorg) { reorganize(); } } void canvas_view::slot_delete() { QList l_oLst; foreach (canvas_item *l_oItem, selection()) { l_oLst.push_back(l_oItem->Id()); } if (l_oLst.isEmpty()) { return; } mem_sel *sel = new mem_sel(m_oMediator); sel->unsel = l_oLst; sel->apply(); mem_delete *del = new mem_delete(m_oMediator); del->init(l_oLst); del->apply(); } void canvas_view::move_sel(int i_iX, int i_iY) { QList sel = selection(); check_canvas_size(); foreach (canvas_item *l_oItem, sel) { l_oItem->moveBy(i_iX, i_iY); } foreach (canvas_item *l_oItem, sel) { l_oItem->update_links(); ensureVisible(l_oItem); } } void canvas_view::zoom_in() { double i_iScaleFactor = 1.05; qreal i_rFactor = matrix().scale(i_iScaleFactor, i_iScaleFactor).mapRect(QRectF(0, 0, 1, 1)).width(); if (i_rFactor < 0.01 || i_rFactor > 1000) return; scale(i_iScaleFactor, i_iScaleFactor); check_canvas_size(); } void canvas_view::zoom_out() { double i_iScaleFactor = 0.95; qreal i_rFactor = matrix().scale(i_iScaleFactor, i_iScaleFactor).mapRect(QRectF(0, 0, 1, 1)).width(); if (i_rFactor < 0.01 || i_rFactor > 1000) return; scale(i_iScaleFactor, i_iScaleFactor); check_canvas_size(); } void canvas_view::wheelEvent(QWheelEvent *i_oEvent) { QPointF l_o = mapToScene(i_oEvent->pos()); qreal i_iScaleFactor = pow(2.0, i_oEvent->delta() / 440.0); qreal i_rFactor = matrix().scale(i_iScaleFactor, i_iScaleFactor).mapRect(QRectF(0, 0, 1, 1)).width(); if (i_rFactor < 0.01 || i_rFactor > 1000) return; if (scene()->selectedItems().size()) { QRectF l_oRect = scene()->selectedItems().at(0)->sceneBoundingRect(); foreach (QGraphicsItem *l_o, scene()->selectedItems()) { l_oRect |= l_o->sceneBoundingRect(); } l_oRect = QRectF(l_oRect.topLeft() - QPointF(10, 10), l_oRect.bottomRight() + QPointF(10, 10)); QRectF l_oViewRect = viewport()->rect(); QRectF l_oNewRect = matrix().scale(i_iScaleFactor, i_iScaleFactor).mapRect(l_oRect); if (l_oNewRect.width() > l_oViewRect.width() or l_oNewRect.height() > l_oViewRect.height()) { return; } scale(i_iScaleFactor, i_iScaleFactor); centerOn(l_o + mapToScene(viewport()->rect().center()) - mapToScene(i_oEvent->pos())); ensureVisible(l_oRect, 5, 5); } else { // AAAAAA!!! QRectF l_oRect = scene()->itemsBoundingRect(); l_oRect = QRectF(l_oRect.topLeft() - QPointF(PIPAD, PIPAD), l_oRect.bottomRight() + QPointF(PIPAD, PIPAD)); l_oRect = matrix().scale(i_iScaleFactor, i_iScaleFactor).mapRect(l_oRect); QRectF l_oViewRect = viewport()->rect(); if (i_rFactor < 1 and i_iScaleFactor < 1 and 1.1 * l_oRect.width() < l_oViewRect.width() and 1.1 * l_oRect.height() < l_oViewRect.height()) { ensureVisible(scene()->itemsBoundingRect(), 10, 10); return; } scale(i_iScaleFactor, i_iScaleFactor); centerOn(l_o + mapToScene(viewport()->rect().center()) - mapToScene(i_oEvent->pos())); } } void canvas_view::notify_open_map() { QRect l_oRect = viewport()->rect(); if (m_oItems.size() < 1) // no rectangle { scene()->setSceneRect(QRectF(mapToScene(l_oRect.topLeft()), mapToScene(l_oRect.bottomRight()))); return; } check_canvas_size(); fitInView(scene()->sceneRect(), Qt::KeepAspectRatio); } void canvas_view::notify_select(const QList& unsel, const QList& sel) { edit_off(); foreach (int k, sel) { Q_ASSERT(m_oItems[k] != NULL); if (!m_oItems[k]->isSelected()) { m_oItems[k]->setSelected(true); } } foreach (int k, unsel) { Q_ASSERT(m_oItems[k] != NULL); if (m_oItems[k]->isSelected()) { m_oItems[k]->setSelected(false); } } } void canvas_view::sync_colors() { semantik_win *l_o = (semantik_win*) m_oSemantikWindow; l_o->m_oColorsToolBar->clear(); while (l_o->m_oColorGroup->actions().size() > m_oMediator->m_oColorSchemes.size()+1) { QAction* l_oA = l_o->m_oColorGroup->actions().takeFirst(); l_o->m_oColorsToolBar->removeAction(l_oA); m_oColorMenu->removeAction(l_oA); delete l_oA; } while (l_o->m_oColorGroup->actions().size() < m_oMediator->m_oColorSchemes.size()+1) { new QAction(QIcon(), trUtf8("Color"), l_o->m_oColorGroup); } l_o->m_oColorGroup->removeAction(l_o->m_oCustomColorAct); l_o->m_oColorGroup->addAction(l_o->m_oCustomColorAct); m_oColorMenu->removeAction(l_o->m_oCustomColorAct); m_oColorMenu->addAction(l_o->m_oCustomColorAct); for (int i=0; im_oColorSchemes.size(); ++i) { color_scheme l_oScheme = m_oMediator->m_oColorSchemes[i]; QAction *l_oAction = l_o->m_oColorGroup->actions()[i]; QPixmap l_oPix(22, 22); QPainter l_oP(&l_oPix); l_oAction->setText(l_oScheme.m_sName); l_oPix.fill(l_oScheme.m_oInnerColor); //TODO pen ? l_oP.drawRect(0, 0, 21, 21); l_oAction->setIcon(QIcon(l_oPix)); } // la première action est pour la couleur de la racine for (int i=1; im_oColorGroup->actions().size(); ++i) { QAction *l_oAct = l_o->m_oColorGroup->actions()[i]; l_o->m_oColorsToolBar->addAction(l_oAct); m_oColorMenu->addAction(l_oAct); } } void canvas_view::notify_pic(int id) { qDebug()<<"canvas_view::notify_pic to be implemented"; } void canvas_view::sync_flags() { semantik_win *l_o = (semantik_win*) m_oSemantikWindow; l_o->m_oFlagsToolBar->clear(); while (l_o->m_oFlagGroup->actions().size() > m_oMediator->m_oFlagSchemes.size()) { QAction* l_oA = l_o->m_oFlagGroup->actions().takeFirst(); delete l_oA; } while (l_o->m_oFlagGroup->actions().size() < m_oMediator->m_oFlagSchemes.size()) { new QAction(QIcon(), trUtf8("Flag"), l_o->m_oFlagGroup); } for (int i=0; im_oFlagSchemes.size(); ++i) { flag_scheme* l_oScheme = m_oMediator->m_oFlagSchemes[i]; QAction *l_oAction = l_o->m_oFlagGroup->actions()[i]; l_oAction->setText(l_oScheme->m_sName); l_oAction->setIcon(l_oScheme->_icon()); } foreach(QAction* l_oAct, l_o->m_oFlagGroup->actions()) { l_o->m_oFlagsToolBar->addAction(l_oAct); l_oAct->setCheckable(true); } } void canvas_view::change_colors(QAction* i_oAct) { if (! hasFocus()) return; static QColor l_oColor; int l_iIdx = -1; semantik_win *l_o = (semantik_win*) m_oSemantikWindow; for (int i=1; im_oColorGroup->actions().size(); ++i) { if (l_o->m_oColorGroup->actions()[i]==i_oAct) { l_iIdx = i; if (i==l_o->m_oColorGroup->actions().size()-1) { l_oColor = QColorDialog::getColor(l_oColor, this); if (!l_oColor.isValid()) return; } break; } } mem_color* col = new mem_color(m_oMediator); col->newColor = l_iIdx; col->apply(); } void canvas_view::change_flags(QAction* i_oAction) { int l_iIndex = 0; semantik_win *l_o = (semantik_win*) m_oSemantikWindow; for (int i=0; im_oFlagGroup->actions().size(); ++i) { QAction *l_oAct = l_o->m_oFlagGroup->actions()[i]; if (l_oAct == i_oAction) l_iIndex = i; } QString l_sName = m_oMediator->m_oFlagSchemes[l_iIndex]->m_sId; /* canvas_item *l_oItem = selection()[0]; data_item *l_oData = *m_oMediator + l_oItem->Id(); if (i_oAction->isChecked()) l_oData->m_oFlags.push_back(l_sName); else l_oData->m_oFlags.removeAll(l_sName); l_oItem->update_flags(); */ mem_flag* tmp = new mem_flag(m_oMediator); tmp->flag = l_sName; tmp->add = i_oAction->isChecked(); tmp->apply(); } void canvas_view::check_selected() { QList sel = selection(); semantik_win *l_o = (semantik_win*) m_oSemantikWindow; data_item *l_oData = NULL; if (sel.size() == 1) { l_oData = *m_oMediator + sel[0]->Id(); } //foreach(QAction* l_oAct, l_o->m_oFlagGroup->actions()) for (int i=0; im_oFlagGroup->actions().size(); ++i) { QAction *l_oAct = l_o->m_oFlagGroup->actions()[i]; if (sel.size() != 1) l_oAct->setChecked(false); else { QString l_sName = m_oMediator->m_oFlagSchemes[i]->m_sId; l_oAct->setChecked(l_oData->m_oFlags.contains(l_sName)); } l_oAct->setEnabled(sel.size()); } foreach(QAction* l_oAct, l_o->m_oColorGroup->actions()) { l_oAct->setEnabled(sel.size() >= 1); } } void canvas_view::deselect_all(bool i_oSignal) { edit_off(); mem_sel *sel = new mem_sel(m_oMediator); if (sel->unsel.empty()) { delete sel; } else { sel->apply(); } } void canvas_view::enable_actions() { foreach (QAction* l_o, actions()) { l_o->setEnabled(true); // TODO we could disable the move actions one by one } enable_menu_actions(); } void canvas_view::enable_menu_actions() { QList sel = selection(); m_oAddItemAction->setEnabled(sel.size()<=1); m_oDeleteAction->setEnabled(sel.size()>0); //m_oEditAction->setEnabled(sel.size()==1); m_oColorMenu->setEnabled(sel.size()>=1); //m_oDataMenu->setEnabled(sel.size()==1); m_oSelectSubtreeAction->setEnabled(sel.size()==1); if (sel.size() == 1) { data_item *l_oData = *m_oMediator + sel[0]->Id(); #define fafa(v, t) v->setChecked(l_oData->m_iDataType == t); fafa(m_oTextType, VIEW_TEXT); fafa(m_oDiagramType, VIEW_DIAG); fafa(m_oTableType, VIEW_TABLE); fafa(m_oImageType, VIEW_IMG); } m_oTextType->setEnabled(sel.size()==1); m_oTableType->setEnabled(sel.size()==1); m_oImageType->setEnabled(sel.size()==1); m_oDiagramType->setEnabled(sel.size()==1); /* foreach (QAction* l_o, m_oDataMenu->actions()) { l_o->setEnabled(sel.size()==1); }*/ } void canvas_view::mousePressEvent(QMouseEvent *i_oEv) { m_oLastPressPoint = i_oEv->pos(); if (i_oEv->button() == Qt::MidButton) { m_bScroll = true; setDragMode(QGraphicsView::ScrollHandDrag); return; } if (i_oEv->button() == Qt::RightButton) { // first, we cannot edit an item when right-click is selected edit_off(); // select the item under the cursor if available and show the popup menu m_oLastPoint = mapToScene(i_oEv->pos()); QGraphicsItem *l_oItem = scene()->itemAt(mapToScene(i_oEv->pos())); if (l_oItem && l_oItem->type() == CANVAS_ITEM_T) { if (!l_oItem->isSelected()) { QList lst; lst.append(((canvas_item*) l_oItem)->Id()); mem_sel *sel = new mem_sel(m_oMediator); sel->sel = lst; sel->apply(); } } else { deselect_all(); } enable_menu_actions(); m_oMenu->popup(i_oEv->globalPos()); i_oEv->accept(); return; } QGraphicsItem *l_oItem = scene()->itemAt(mapToScene(i_oEv->pos())); QList sel = selection(); if (sel.size() == 1 && QApplication::keyboardModifiers() & Qt::ShiftModifier) { // link items on click sequences if (l_oItem && l_oItem->type() == CANVAS_ITEM_T) { int id1 = sel.at(0)->Id(); int id2 = ((canvas_item*) l_oItem)->Id(); m_oMediator->link_items(id1, id2); QList unlst; unlst.append(id1); QList lst; lst.append(id2); mem_sel *sel = new mem_sel(m_oMediator); sel->sel = lst; sel->unsel = unlst; sel->apply(); return; } } canvas_chain *kk=NULL; if (l_oItem && (kk = dynamic_cast(l_oItem))) { QList lst; foreach (QGraphicsItem *l_o, scene()->selectedItems()) { l_o->setSelected(false); canvas_item *it = dynamic_cast(l_o); if (it) { lst.append(it->Id()); } } if (lst.size()) { mem_sel *sel = new mem_sel(m_oMediator); sel->unsel = lst; sel->apply(); } canvas_item *l_oParent = dynamic_cast(kk->parentItem()); Q_ASSERT(l_oParent); QRectF r = l_oParent->boundingRect().translated(l_oParent->pos()); m_oLastPressPoint.setX(r.x() + r.width() / 2.); m_oLastPressPoint.setY(r.y() + r.height() / 2.); m_oLastPressPoint = mapFromScene(m_oLastPressPoint); QRect l_oSel = QRect(m_oLastPressPoint, i_oEv->pos()); m_oRubberLine->setGeometry(l_oSel); m_oRubberLine->setVisible(true); return; } canvas_sort *l_oSort = dynamic_cast(scene()->itemAt(mapToScene(i_oEv->pos()))); if (l_oSort) return; canvas_sort_toggle *l_oToggle = dynamic_cast(l_oItem); if (l_oToggle) return; QGraphicsView::mousePressEvent(i_oEv); } void canvas_view::mouseReleaseEvent(QMouseEvent *i_oEv) { if (m_oRubberLine->isVisible()) { m_oRubberLine->setVisible(false); canvas_item *l_oR1 = NULL; canvas_item *l_oR2 = NULL; foreach (QGraphicsItem *l_oI1, scene()->items(mapToScene(m_oLastPressPoint))) { if (l_oI1->type() == CANVAS_ITEM_T) { l_oR1 = (canvas_item*) l_oI1; break; } } foreach (QGraphicsItem *l_oI1, scene()->items(mapToScene(i_oEv->pos()))) { if (l_oI1->type() == CANVAS_ITEM_T) { l_oR2 = (canvas_item*) l_oI1; break; } } if (l_oR1 && l_oR2 && l_oR1 != l_oR2) { m_oMediator->link_items(l_oR1->Id(), l_oR2->Id()); deselect_all(); // TODO } m_oRubberLine->hide(); return; } if (m_bScroll) { m_bScroll = false; setDragMode(QGraphicsView::RubberBandDrag); } QGraphicsItem *l_oItem = scene()->itemAt(mapToScene(i_oEv->pos())); canvas_sort *l_oSort = dynamic_cast(l_oItem); if (l_oSort) { int l_iId = l_oSort->m_oFrom->Id(); int l_iParentId = m_oMediator->parent_of(l_iId); mem_sort *srt = new mem_sort(m_oMediator); srt->init(l_iParentId, l_iId, m_oMediator->m_iSortCursor); srt->apply(); m_oMediator->m_iSortCursor++; if (m_oMediator->m_iSortCursor >= m_oMediator->num_children(l_iParentId)) { m_oMediator->m_iSortCursor = 0; } emit sig_message(trUtf8("Click to set Item %1").arg(QString::number(m_oMediator->m_iSortCursor+1)), -1); return; } canvas_sort_toggle *l_oToggle = dynamic_cast(l_oItem); if (l_oToggle) { if (scene()->selectedItems().size() == 1) { canvas_item *it = static_cast(l_oToggle->parentItem()); QList lst; lst.append(it->Id()); mem_sel *sel = new mem_sel(m_oMediator); sel->sel = lst; sel->unsel = lst; sel->m_iSortSel = it->Id(); sel->apply(); } return; } QGraphicsView::mouseReleaseEvent(i_oEv); edit_off(); if (i_oEv->button() == Qt::RightButton) return; m_bPressed = false; check_selection(); //qDebug()<<"mouse release event!"; QList lst; foreach (QGraphicsItem* k, scene()->selectedItems()) { canvas_item* t = (canvas_item*) k; lst.append(t->Id()); } if (lst.size()) { data_item *p = m_oMediator->m_oItems[lst[0]]; canvas_item *v = m_oItems[lst[0]]; if (qAbs(p->m_iXX - v->pos().x()) + qAbs(p->m_iYY - v->pos().y()) > 0.1) { mem_move *mv = new mem_move(m_oMediator); mv->sel = lst; for (int i = 0; i < lst.size(); ++i) { data_item *it = m_oMediator->m_oItems[lst[i]]; mv->oldPos.append(QPointF(it->m_iXX, it->m_iYY)); mv->newPos.append(m_oItems[lst[i]]->pos()); } mv->apply(); } // else { qDebug()<<"move too small"; } } check_canvas_size(); } void canvas_view::mouseDoubleClickEvent(QMouseEvent* i_oEv) { if (i_oEv->button() != Qt::LeftButton) return; m_oLastPoint = mapToScene(i_oEv->pos()); QGraphicsItem *l_oItem = itemAt(i_oEv->pos()); if (l_oItem) { if (l_oItem->type() == CANVAS_ITEM_T) { deselect_all(); canvas_item *l_oR = (canvas_item*) l_oItem; l_oR->setSelected(false); mem_add *add = new mem_add(m_oMediator); add->init(); add->item->m_iXX = m_oLastPoint.x(); add->item->m_iYY = m_oLastPoint.y(); add->parent = l_oR->Id(); add->apply(); } else if (l_oItem->type() == CANVAS_LINK_T) { canvas_link *l_oLink = (canvas_link*) l_oItem; mem_unlink *link = new mem_unlink(m_oMediator); link->child = l_oLink->m_oTo->Id(); link->parent = l_oLink->m_oFrom->Id(); link->apply(); } } else if (i_oEv->modifiers() != Qt::ControlModifier) { mem_add *add = new mem_add(m_oMediator); add->init(); add->item->m_iXX = m_oLastPoint.x(); add->item->m_iYY = m_oLastPoint.y(); add->apply(); } } void canvas_view::check_canvas_size() { QRectF br = scene()->itemsBoundingRect(); br.adjust(-GAP, -GAP, GAP, GAP); br = br.united(scene()->sceneRect()); scene()->setSceneRect(br); } void canvas_view::fit_zoom() { //QRectF l_o = scene()->sceneRect(); //fitInView(QRectF(l_o.topLeft()+QPointF(100, 100), l_o.size()+QSizeF(200, -200)), Qt::KeepAspectRatio); #if 0 QRectF l_o; foreach (QGraphicsItem *it, items()) { l_o |= it->boundingRect(); } #endif //check_canvas_size(); if (scene()->selectedItems().size()) { QRectF l_oRect = scene()->selectedItems().at(0)->sceneBoundingRect(); foreach (QGraphicsItem *l_o, scene()->selectedItems()) { l_oRect |= l_o->sceneBoundingRect(); } l_oRect = QRectF(l_oRect.topLeft() - QPointF(PIPAD, PIPAD), l_oRect.bottomRight() + QPointF(PIPAD, PIPAD)); fitInView(l_oRect, Qt::KeepAspectRatio); } else { fitInView(scene()->sceneRect(), Qt::KeepAspectRatio); } } void canvas_view::slot_change_data() { mem_datatype* t = new mem_datatype(m_oMediator); t->newDataType = ((QAction*) QObject::sender())->data().toInt(); if (t->sel != NULL && t->newDataType != t->oldDataType) t->apply(); else delete(t); } void canvas_view::toggle_fullscreen() { if (isFullScreen()) { setWindowModality(Qt::NonModal); //setFullScreen(false); setWindowState(Qt::WindowNoState); setWindowFlags(Qt::Widget); show(); } else { setWindowFlags(Qt::Window); //setFullScreen(true); setWindowState(Qt::WindowFullScreen); setWindowModality(Qt::ApplicationModal); show(); } } rubber_line::rubber_line(QRubberBand::Shape i, QWidget* j) : QRubberBand(i, j) { } void rubber_line::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); //painter.setPen(Qt::NoPen); painter.setBrush(QColor(Qt::red)); if (_direction > 0) { painter.drawLine(QPoint(0, 0), QPoint(size().width(), size().height())); } else { painter.drawLine(QPoint(size().width(), 0), QPoint(0, size().height())); } } void rubber_line::setGeometry(const QRect& i_o) { _direction = i_o.width() * i_o.height(); QRubberBand::setGeometry(i_o.normalized()); } #define HSPACER 32. #define WSPACER 32. double canvas_view::compute_height(QMap &map, QMap >&children, int id) { double size = 0; QMap >::const_iterator it = children.find(id); if (it != children.end()) { QList tmp = it.value(); size += (tmp.size() - 1) * HSPACER; foreach (int k, tmp) { size += compute_height(map, children, k); } } double tmp = m_oItems[id]->boundingRect().height(); if (size < tmp) size = tmp; map[id] = size; //qDebug()<<"size for"< &map, QMap >&children, int id, int level) { double w = m_oItems[id]->boundingRect().width(); QMap::iterator jt = map.find(level); if (jt != map.end()) { double val = jt.value(); map[level] = val > w ? val : w; } else { map[level] = w; } QMap >::iterator it = children.find(id); if (it != children.end()) { QList tmp = it.value(); foreach (int sub, tmp) { compute_width(map, children, sub, level+1); } } } void canvas_view::reorganize() { QList roots = m_oMediator->all_roots(); QMap height; QMap > children; for (int i=0; i < m_oMediator->m_oLinks.size(); ++i) { QPoint l_oP = m_oMediator->m_oLinks.at(i); QMap >::iterator it = children.find(l_oP.x()); if (it != children.end()) { it.value() << l_oP.y(); } else { QList tmp; tmp << l_oP.y(); children[l_oP.x()] = tmp; } } foreach (int k, roots) { double ref = compute_height(height, children, k); QMap >::iterator it = children.find(k); if (it != children.end()) { QList tmp = it.value(); ref -= (tmp.size() - 1) * HSPACER; int mid = 0; int max = 0; int tot = 0; double left_height = 0; foreach (int sub, tmp) { tot += height[sub]; if (tot * (ref - tot) >= max) { max = tot * (ref - tot); mid = sub; left_height += height[sub] + HSPACER; } else { break; } } QMap width; compute_width(width, children, k, 0); left_height -= HSPACER; int left = 1; double acc_height = m_oItems[k]->y() + m_oItems[k]->boundingRect().height() / 2 - left_height / 2; foreach (int sub, tmp) { // put the element in place, then recurse double y = acc_height + height[sub] / 2 - m_oItems[sub]->boundingRect().height() / 2; if (left) { double x = m_oItems[k]->x() + m_oItems[k]->boundingRect().width() - width[0] - WSPACER; m_oItems[sub]->setPos(x - m_oItems[sub]->boundingRect().width(), y); } else { double x = m_oItems[k]->x() + width[0] + WSPACER; m_oItems[sub]->setPos(x, y); } acc_height += height[sub] + HSPACER; m_oItems[k]->update_links(); pack(width, height, children, sub, 1, left); // now to the right if (sub == mid) { left = 0; acc_height = m_oItems[k]->y() + m_oItems[k]->boundingRect().height() / 2 - (height[k] - left_height - HSPACER) / 2; } } } } // now apply the layout for undo/redo mem_move *mv = new mem_move(m_oMediator); mv->sel.clear(); foreach(data_item* x, m_oMediator->m_oItems.values()) { canvas_item *v = m_oItems[x->m_iId]; QPointF p = v->pos(); if (p.x() != x->m_iXX || p.y() != x->m_iYY) { mv->sel.append(x->m_iId); mv->oldPos.append(QPointF(x->m_iXX, x->m_iYY)); mv->newPos.append(v->pos()); } } if (mv->sel.size() > 0) { mv->apply(); } else { delete mv; } } void canvas_view::pack(QMap &width, QMap &height, QMap >&children, int id, int level, int left) { QMap >::iterator it = children.find(id); if (it != children.end()) { QList tmp = it.value(); double acc_height = m_oItems[id]->y() + m_oItems[id]->boundingRect().height() / 2 - height[id] / 2; foreach (int sub, tmp) { double y = acc_height + height[sub] / 2 - m_oItems[sub]->boundingRect().height()/2; if (left) { double x = m_oItems[id]->x() + m_oItems[id]->boundingRect().width() - width[0] - WSPACER; m_oItems[sub]->setPos(x - m_oItems[sub]->boundingRect().width(), y); } else { double x = m_oItems[id]->x() + width[0] + WSPACER; m_oItems[sub]->setPos(x, y); } acc_height += height[sub] + HSPACER; pack(width, height, children, sub, level+1, left); } m_oItems[id]->update_links(); } } void canvas_view::export_map_size() { QRectF l_oRect = scene()->itemsBoundingRect(); l_oRect = QRectF(l_oRect.topLeft() - QPointF(PIPAD, PIPAD), l_oRect.bottomRight() + QPointF(PIPAD, PIPAD)); export_map_dialog* exp = new export_map_dialog(this); exp->kurlrequester->setMode(KFile::File | KFile::LocalOnly); exp->kurlrequester->setFilter(trUtf8("*.png|PNG Files (*.png)")); exp->kurlrequester->setUrl(KUrl(m_oMediator->m_sExportUrl)); exp->m_oWidthC->setChecked(m_oMediator->m_bExportIsWidth); exp->m_iBaseWidth = l_oRect.width(); exp->m_iBaseHeight = l_oRect.height(); if (m_oMediator->m_bExportIsWidth) { if (m_oMediator->m_iExportWidth > 0) exp->m_oWidth->setValue(m_oMediator->m_iExportWidth); else exp->m_oWidth->setValue(l_oRect.width()); } else { if (m_oMediator->m_iExportHeight > 0) exp->m_oHeight->setValue(m_oMediator->m_iExportHeight); else exp->m_oHeight->setValue(l_oRect.height()); } if (exp->exec() == KDialog::Accepted) { if (m_oMediator->m_iExportWidth != exp->m_oWidth->value()) { m_oMediator->m_iExportWidth = exp->m_oWidth->value(); m_oMediator->set_dirty(); } if (m_oMediator->m_iExportHeight != exp->m_oHeight->value()) { m_oMediator->m_iExportHeight = exp->m_oHeight->value(); m_oMediator->set_dirty(); } if (!exp->kurlrequester->url().isValid() || exp->kurlrequester->url().isEmpty()) { m_oMediator->notify_message(trUtf8("No destination file selected"), 5000); return; } if (m_oMediator->m_sExportUrl != exp->kurlrequester->url().url()) { m_oMediator->m_sExportUrl = exp->kurlrequester->url().url(); m_oMediator->set_dirty(); } QImage l_oImage((int) l_oRect.width(), (int) l_oRect.height(), QImage::Format_RGB32); if (exp->m_oWidthC->isChecked()) { l_oImage = l_oImage.scaledToWidth(exp->m_oWidth->value()); } else { l_oImage = l_oImage.scaledToHeight(exp->m_oHeight->value()); } l_oImage.fill(qRgb(255,255,255)); QPainter l_oP; l_oP.begin(&l_oImage); l_oP.setRenderHints(QPainter::Antialiasing); scene()->render(&l_oP, l_oImage.rect(), l_oRect); l_oP.end(); // TODO upload remote files QString path = exp->kurlrequester->url().toLocalFile(); if (exp->kurlrequester->url().isRelative()) { path = QDir::homePath() + notr("/") + path; } bool isOk = l_oImage.save(path); if (isOk) m_oMediator->notify_message(trUtf8("Exported '%1'").arg(path), 2000); else KMessageBox::sorry(this, trUtf8("Could not save to %1").arg(path), trUtf8("Missing picture")); } } void canvas_view::notify_export_doc() { QRectF l_oRect = scene()->itemsBoundingRect(); l_oRect = QRectF(l_oRect.topLeft() - QPointF(PIPAD, PIPAD), l_oRect.bottomRight() + QPointF(PIPAD, PIPAD)); QRectF l_oR(0, 0, l_oRect.width(), l_oRect.height()); // fill with white QImage l_oImage((int) l_oR.width(), (int) l_oR.height(), QImage::Format_RGB32); l_oImage.fill(qRgb(255,255,255)); QPainter l_oP; l_oP.begin(&l_oImage); l_oP.setRenderHints(QPainter::Antialiasing); scene()->render(&l_oP, l_oR, l_oRect); l_oP.end(); l_oImage.save(QString(m_oMediator->m_sTempDir + QString("/wholemap.png"))); } QList canvas_view::selection() { // FIXME use scene()->selectedItems() QList ret; foreach (QGraphicsItem *tmp, items()) { if (tmp->type() == CANVAS_ITEM_T && tmp->isSelected()) { ret.append((canvas_item*) tmp); } } return ret; } void canvas_view::mouseMoveEvent(QMouseEvent *i_oEv) { if (m_oRubberLine->isVisible()) { QRect l_oSel = QRect(m_oLastPressPoint, i_oEv->pos()); m_oRubberLine->setGeometry(l_oSel); } if (m_bScroll) { QScrollBar *h = horizontalScrollBar(); QScrollBar *v = verticalScrollBar(); QPoint d = i_oEv->pos() - m_oLastPressPoint; h->setValue(h->value() - d.x()); v->setValue(v->value() - d.y()); m_oLastPressPoint = i_oEv->pos(); //QGraphicsView::mouseMoveEvent(i_oEv); return; } QGraphicsView::mouseMoveEvent(i_oEv); QList sel = scene()->selectedItems(); if (sel.size() > 4) { // does not solve the repainting problem QSet lst; foreach (QGraphicsItem*tmp, sel) { if (tmp->type() == CANVAS_ITEM_T && tmp->isSelected()) { canvas_item* x = (canvas_item*) tmp; foreach (canvas_link* l_oLink, x->m_oLinks) { lst.insert(l_oLink); } } } foreach (canvas_link* tmp, lst) { tmp->update_pos(); } } else { foreach (QGraphicsItem*tmp, sel) { if (tmp->type() == CANVAS_ITEM_T && tmp->isSelected()) { ((canvas_item*) tmp)->update_links(); } } } } void canvas_view::notify_add_item(int id) { Q_ASSERT(! m_oItems.contains(id)); canvas_item* l_oR = new canvas_item(this, id); m_oItems[id] = l_oR; l_oR->update_data(); // do not call methods that create events here check_canvas_size(); } void canvas_view::notify_change_data(int id) { //canvas_item* l_oR = m_oItems.value(id); //qDebug()<<"FIXME data has changed!!!"<removeItem(l_oR1); m_oItems.remove(id); delete l_oR1; m_bDeleting = false; check_canvas_size(); } void canvas_view::notify_link_items(int id1, int id2) { canvas_item *l_oR1 = m_oItems.value(id1); canvas_item *l_oR2 = m_oItems.value(id2); canvas_link * l_oLink = new canvas_link(this, l_oR1, l_oR2); l_oLink->update_pos(); l_oR2->update(); } void canvas_view::notify_unlink_items(int id1, int id2) { canvas_item *l_oR1 = m_oItems.value(id1); canvas_item *l_oR2 = m_oItems.value(id2); foreach (QGraphicsItem *l_oItem, items()) { if (l_oItem->type() == CANVAS_LINK_T) { canvas_link *l_oLink = (canvas_link*) l_oItem; if ( (l_oLink->m_oFrom == l_oR1 && l_oLink->m_oTo == l_oR2) || (l_oLink->m_oFrom == l_oR2 && l_oLink->m_oTo == l_oR1) ) { l_oLink->hide(); l_oLink->rm_link(); delete l_oLink; break; } } } l_oR1->update(); l_oR2->update(); } void canvas_view::notify_move(const QList&sel, const QList&pos) { for (int i = 0; i < sel.size(); ++i) { m_oItems[sel[i]]->setPos(pos[i]); m_oItems[sel[i]]->update_links(); } } void canvas_view::notify_repaint(int id) { m_oItems[id]->update(); } void canvas_view::notify_edit(int id) { data_item *sel = *m_oMediator + id; if (m_oItems[id]->toPlainText() != sel->m_sSummary) { m_oItems[id]->setPlainText(sel->m_sSummary); m_oItems[id]->adjustSize(); m_oItems[id]->update_links(); } m_oItems[id]->update(); } void canvas_view::notify_flag(int id) { m_oItems[id]->update_flags(); } void canvas_view::notify_sort(int i_iId, bool i_bShow) { int j=0; for (int i=0; im_oLinks.size(); i++) { QPoint l_oP = m_oMediator->m_oLinks.at(i); if (l_oP.x() == i_iId) { ++j; canvas_item *l_oRect = m_oItems.value(l_oP.y()); if (j != l_oRect->m_iNum) { l_oRect->m_iNum = j; } l_oRect->m_oSort->update(); l_oRect->m_oSort->setVisible(i_bShow); } } } void canvas_view::notify_focus(void* ptr) { bool cond = ptr == this; m_oAddItemAction->setEnabled(cond); m_oDeleteAction->setEnabled(cond); m_oEditAction->setEnabled(cond); } void canvas_view::focusInEvent(QFocusEvent *i_oEv) { QGraphicsView::focusInEvent(i_oEv); m_oMediator->notify_focus(this); } void canvas_view::focusOutEvent(QFocusEvent *i_oEv) { QGraphicsView::focusOutEvent(i_oEv); edit_off(); } %: include "canvas_view.moc" void recurse_add(int id, QList& sel, const QList& m_oLinks) { sel.append(id); for (int i=0; i < m_oLinks.size(); i++) { QPoint l_oP = m_oLinks.at(i); if (l_oP.x() == id) recurse_add(l_oP.y(), sel, m_oLinks); } } void canvas_view::slot_select_subtree() { QList seli = selection(); Q_ASSERT(seli.size() == 1); mem_sel *sel = new mem_sel(m_oMediator); recurse_add(seli.at(0)->m_iId, sel->sel, m_oMediator->m_oLinks); sel->apply(); } int canvas_view::batch_print_map(const KUrl& i_oUrl, QPair & p) { QRectF l_oRect; foreach (QGraphicsItem*it, scene()->items()) { if (it->isVisible()) { if (l_oRect.width() < 1) { l_oRect = it->boundingRect(); l_oRect.translate(it->pos()); } else { QRectF tmp = it->boundingRect(); tmp.translate(it->pos()); l_oRect = l_oRect.united(tmp); } } it->setCacheMode(QGraphicsItem::NoCache); // the magic happens here } l_oRect = l_oRect.adjusted(-15, -15, 15, 15); QRectF l_oR(0, 0, l_oRect.width(), l_oRect.height()); if (p.first != 0) { l_oR.setWidth(p.first); if (p.second == 0) { l_oR.setHeight((p.first * l_oRect.height()) / (double) l_oRect.width()); } } if (p.second != 0) { l_oR.setHeight(p.second); if (p.first == 0) { l_oR.setWidth((p.second * l_oRect.width()) / (double) l_oRect.height()); } } Qt::AspectRatioMode rat = (p.first == 0 || p.second == 0) ? Qt::KeepAspectRatio : Qt::IgnoreAspectRatio; QString url = i_oUrl.path(); if (url.endsWith("png")) { // fill with white QImage l_oImage((int) l_oR.width(), (int) l_oR.height(), QImage::Format_RGB32); l_oImage.fill(qRgb(255,255,255)); QPainter l_oP; l_oP.begin(&l_oImage); l_oP.setRenderHints(QPainter::Antialiasing); scene()->render(&l_oP, l_oR, l_oRect, rat); l_oP.end(); l_oImage.save(url); } else if (url.endsWith("pdf")) { QPrinter l_oPrinter; //l_oPrinter.setResolution(QPrinter::HighResolution); l_oPrinter.setOrientation(QPrinter::Portrait); l_oPrinter.setOutputFormat(QPrinter::PdfFormat); l_oPrinter.setPaperSize(l_oR.size(), QPrinter::DevicePixel); l_oPrinter.setPageMargins(0, 0, 0, 0, QPrinter::DevicePixel); l_oPrinter.setOutputFileName(url); QPainter l_oPdf; if (l_oPdf.begin(&l_oPrinter)) { m_bDisableGradient = true; scene()->render(&l_oPdf, l_oR, l_oRect, rat); l_oPdf.end(); m_bDisableGradient = false; } } else if (url.endsWith("svg")) { QSvgGenerator l_oGenerator; l_oGenerator.setFileName(url); l_oGenerator.setSize(QSize(l_oR.width(), l_oR.height())); l_oGenerator.setViewBox(l_oR); l_oGenerator.setResolution(QX11Info().appDpiX()); l_oGenerator.setTitle(trUtf8("Semantik map")); QPainter l_oP; l_oP.begin(&l_oGenerator); l_oP.setRenderHints(QPainter::Antialiasing); scene()->render(&l_oP, l_oR, l_oRect, rat); l_oP.end(); } else { return 12; } return 0; } // The following looks copy-pasted but it is not. Watch carefully void canvas_view::slot_print() { QPrinter *l_oP = new QPrinter; QRectF l_oRect; foreach (QGraphicsItem*it, scene()->items()) { if (it->isVisible()) { if (l_oRect.width() < 1) { l_oRect = it->boundingRect(); l_oRect.translate(it->pos()); } else { QRectF tmp = it->boundingRect(); tmp.translate(it->pos()); l_oRect = l_oRect.united(tmp); } } it->setCacheMode(QGraphicsItem::NoCache); // the magic happens here } l_oRect = l_oRect.adjusted(-15, -15, 15, 15); QRectF l_oR(0, 0, l_oRect.width(), l_oRect.height()); l_oP->setOrientation(QPrinter::Portrait); l_oP->setOutputFormat(QPrinter::PdfFormat); l_oP->setPaperSize(l_oR.size(), QPrinter::DevicePixel); l_oP->setPageMargins(0, 0, 0, 0, QPrinter::DevicePixel); QPrintDialog l_oD(l_oP, this); if (l_oD.exec() != QDialog::Accepted) { emit sig_message(trUtf8("Printing cancelled"), 3000); return; } QPainter l_oPdf; if (l_oPdf.begin(l_oP)) { m_bDisableGradient = true; scene()->render(&l_oPdf, QRectF(), l_oRect, Qt::KeepAspectRatio); l_oPdf.end(); m_bDisableGradient = false; emit sig_message(trUtf8("Printing completed"), 5000); } else { emit sig_message(trUtf8("Problem during printing :-("), 5000); } } semantik-0.9.5/src/canvas_view.h000664 000000 000000 00000007630 12732552614 016602 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef CANVAS_VIEW_H #define CANVAS_VIEW_H #include "KUrl" #include #include #include #include #include #include "con.h" #include #include class QMenu; class canvas_link; class sem_mediator; class canvas_item; class rubber_line; class canvas_view : public QGraphicsView { Q_OBJECT public: canvas_view(QWidget *i_oWidget, sem_mediator* i_oControl); void item_moved(); QMap m_oItems; QMenu* m_oMenu; QMenu* m_oColorMenu; QMenu* m_oDataMenu; QAction* m_oTextType, *m_oDiagramType, *m_oTableType, *m_oImageType; bool m_bDeleting; bool m_bDisableGradient; void focusInEvent(QFocusEvent *); void focusOutEvent(QFocusEvent *); void wheelEvent(QWheelEvent *i_oEvent); void mouseDoubleClickEvent(QMouseEvent *i_oEv); void mousePressEvent(QMouseEvent *i_oEv); void mouseMoveEvent(QMouseEvent *i_oEv); void mouseReleaseEvent(QMouseEvent *i_oEv); bool m_bPressed; bool m_bScroll; QPoint m_oLastPressPoint; QPointF m_oLastMovePoint; QWidget *m_oSemantikWindow; QRubberBand* m_oRubbery; rubber_line * m_oRubberLine; QList selection(); void deselect_all(bool i_oSignal=true); void enable_menu_actions(); // like check_actions, but only for the popup menu int batch_print_map(const KUrl& url, QPair & size); double compute_height(QMap &map, QMap >&children, int id); void compute_width(QMap &map, QMap >&children, int id, int level); void pack(QMap &width, QMap &height, QMap >&children, int id, int level, int left); void check_selected(); void edit_off(); // if the editing was on, turn it off //void scaleView(qreal i_oScaleFactor); sem_mediator *m_oMediator; QVector m_oRect; QPointF m_oLastPoint; void move_sel(int i_iX, int i_iY); void check_canvas_size(); void enable_all(bool); QAction *m_oAddItemAction; QAction *m_oEditAction; QAction *m_oCancelEditAction; QAction *m_oDeleteAction; QAction *m_oMoveUpAction; QAction *m_oMoveDownAction; QAction *m_oMoveLeftAction; QAction *m_oMoveRightAction; QAction *m_oSelectUpAction; QAction *m_oSelectDownAction; QAction *m_oSelectLeftAction; QAction *m_oSelectRightAction; QAction *m_oSelectSubtreeAction; QAction *m_oInsertSiblingAction; QAction *m_oNextRootAction; void resizeEvent(QResizeEvent*); public slots: void export_map_size(); void change_colors(QAction*); void fit_zoom(); void change_flags(QAction*); void slot_toggle_edit(); void slot_cancel_edit(); void slot_add_item(); void enable_actions(); // used on focus in void slot_add_sibling(); void slot_delete(); void slot_move(); void slot_sel(); void slot_next_root(); void zoom_in(); void slot_print(); void zoom_out(); void toggle_fullscreen(); void slot_select_subtree(); void notify_focus(void* ptr); void notify_pic(int id); void notify_add_item(int id); void notify_delete_item(int id); void notify_link_items(int id1, int id2); void notify_unlink_items(int id1, int id2); void notify_select(const QList& unsel, const QList& sel); void notify_move(const QList&sel, const QList&pos); void notify_repaint(int id); void notify_edit(int id); void notify_flag(int id); void notify_sort(int, bool); void notify_open_map(); void notify_change_data(int id); void notify_export_doc(); void sync_flags(); void sync_colors(); void slot_change_data(); void reorganize(); void check_selection(); signals: void sig_message(const QString &, int); }; class rubber_line : public QRubberBand { public: int _direction; rubber_line(QRubberBand::Shape, QWidget*); void paintEvent(QPaintEvent *); void setGeometry(const QRect& i_o); }; #endif semantik-0.9.5/src/con.h000664 000000 000000 00000002513 12732552614 015047 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef CON #define CON #include #include #include #include #define gratype(x) (QGraphicsItem::UserType + x) #define CANVAS_ITEM_T gratype(12301) #define CANVAS_FLAG_T gratype(12302) #define CANVAS_LINK_T gratype(12303) #define CANVAS_SORT_T gratype(12304) #define BOX_ITEM_T gratype(12305) #define BOX_LINK_T gratype(12306) #define CANVAS_CHAIN_T gratype(12307) #define hash_params QHash #define data_parent 0 #define data_id 1 #define data_id1 2 #define data_id2 3 #define data_orig 4 #define data_commande 5 #define data_type 6 // change the view stuff #define VIEW_CANVAS 1 #define VIEW_LINEAR 2 #define VIEW_TEXT 3 #define VIEW_IMG 4 #define VIEW_DIAG 5 #define VIEW_TABLE 6 #define notr(x) QString(x) #define xp(a, b, d) a->setItem(b, 0, new QStandardItem(d)); #define yp(a, b, d) a->setItem(b, 1, new QStandardItem(d)); #define GRID 10 #define nof(x, y) ((int) ((y) * ((int) ((x) / (y))))) #define int_val2(x) (nof(x, GRID/2.)) #define int_val(x) (nof(x, GRID)) int grid_int(int x); #define mu(x) #x #define fu(x, y) mu(x##y) #define moc(x) fu(x, moc) #define min_offset 15 #define NO_ITEM 0 #define NO_VIEW 0 //#define EMPTY_TEXT "Empty" //#define trUtf8(x) QCoreApplication::translate(NULL, x) #incl\ ude \ "aux.h" #endif semantik-0.9.5/src/config_dialog.cpp000664 000000 000000 00000005556 12732552614 017421 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "config_dialog.h" config_dialog::config_dialog(QWidget *i_oParent): KDialog(i_oParent) { QWidget *widget = new QWidget(this); setCaption(trUtf8("Document settings")); setButtons(KDialog::Ok | KDialog::Cancel); QGridLayout *l_oGridLayout = new QGridLayout(widget); QLabel *l_sLabel; l_sLabel = new QLabel(widget); l_sLabel->setText(trUtf8("Reorganization type")); l_oGridLayout->addWidget(l_sLabel, 0, 0, 1, 1); l_sLabel = new QLabel(widget); l_sLabel->setText(trUtf8("Item position after keyboard insertion")); l_oGridLayout->addWidget(l_sLabel, 1, 0, 1, 1); l_sLabel = new QLabel(widget); l_sLabel->setText(trUtf8("Connection type")); l_oGridLayout->addWidget(l_sLabel, 2, 0, 1, 1); l_sLabel = new QLabel(widget); l_sLabel->setText(trUtf8("Save document automatically")); l_oGridLayout->addWidget(l_sLabel, 3, 0, 1, 1); l_sLabel = new QLabel(widget); l_sLabel->setText(trUtf8("Background color")); l_oGridLayout->addWidget(l_sLabel, 4, 0, 1, 1); m_oReorgType = new QComboBox(widget); m_oReorgType->addItems(QStringList()<addWidget(m_oReorgType, 0, 1, 1, 1); m_oAutoReorg = new QComboBox(widget); m_oAutoReorg->addItems(QStringList()<addWidget(m_oAutoReorg, 1, 1, 1, 1); m_oConnType = new QComboBox(widget); m_oConnType->addItems(QStringList()<addWidget(m_oConnType, 2, 1, 1, 1); m_oAutoSave = new QSpinBox(widget); m_oAutoSave->setSuffix(trUtf8(" min")); m_oAutoSave->setRange(0, 69 /* 69 hmmm */); l_oGridLayout->addWidget(m_oAutoSave, 3, 1, 1, 1); m_oAutoSave->setToolTip(trUtf8("Interval in minutes for saving the document automatically, 0 for disabling this feature")); m_oColorWidget = new QPushButton(widget); l_oGridLayout->addWidget(m_oColorWidget, 4, 1, 1, 1); connect(m_oColorWidget, SIGNAL(clicked()), this, SLOT(select_color())); setMainWidget(widget); QSize size(321, 120); size = size.expandedTo(minimumSizeHint()); resize(size); } void config_dialog::select_color() { m_oColor = QColorDialog::getColor(m_oColor, this); if (!m_oColor.isValid()) return; m_oColorWidget->setText(m_oColor.name()); QPalette l_oPalette = m_oColorWidget->palette(); l_oPalette.setBrush(QPalette::Active, QPalette::Button, m_oColor); m_oColorWidget->setPalette(l_oPalette); } #include "config_dialog.moc" semantik-0.9.5/src/config_dialog.h000664 000000 000000 00000000756 12732552614 017063 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef CONFIG_DIALOG_H #define CONFIG_DIALOG_H #include #include class QComboBox; class QSpinBox; class QTreeWidgetItem; class QPushButton; class config_dialog : public KDialog { Q_OBJECT public: config_dialog(QWidget *i_oParent); QComboBox *m_oReorgType; QComboBox *m_oAutoReorg; QComboBox *m_oConnType; QSpinBox *m_oAutoSave; QPushButton *m_oColorWidget; QColor m_oColor; public slots: void select_color(); }; #endif semantik-0.9.5/src/data/000775 000000 000000 00000000000 12732552614 015027 5ustar00rootroot000000 000000 semantik-0.9.5/src/data/erase.svg000664 000000 000000 00000015510 12732552614 016651 0ustar00rootroot000000 000000 image/svg+xml semantik-0.9.5/src/data/hand.svg000664 000000 000000 00000010770 12732552614 016467 0ustar00rootroot000000 000000 image/svg+xml semantik-0.9.5/src/data/hi128-app-semantik-d.png000664 000000 000000 00000032146 12732552614 021206 0ustar00rootroot000000 000000 PNG  IHDR>asBIT|d pHYstEXtSoftwarewww.inkscape.org< IDATx]gTE~qfzr @ArsbWT09`B*(HF$I 9My:ݪ~t;[Sy)9_4m\qp WOMm=V{@'.\7=,uWUOcpRMgE1b=i戝bc,!iKlL;N3EjnRωHN舑 3BmCmGZR4D{`fY/XT#Աh'`SŌ!Dx=/TcSYϮ8/Kۿ+Jh?1BͬiibFB{#_%lY6aOܚR?s|vj'nuMhy: %1>b̝T1={cy>o6}}s:I]޼͸E!ѩb?j~IBʕ9/}y+&jf!ڈ_o{T5Pp^ |Yli7Z= uoLL"5my)b9Qvbߞysĝ.Q^6]OM1uUgSqє["x1ݛHݽꟀSQ\ ?y ܇zs1x[;@6R=Q^Ym: ZD1yeʁWeZǷ~})3޳tsM@z).V8m2ȓ"JСC0j[k;71pO#fGwG,NGZsqkZ)-A .pptn]xm=pI4wS+{BP߶8B|paQ/ź*Y9/wMmk4myvɽL1L?,_\մA 1'ޜ?8V58Nז5^{O'_9KyOCa1 ޏb/kXļq 9;/V^:ipD![;?\*f,uvuq?ȕS$~+>ISR}a`0j H'7w:8#F YLC-6ƪ<2aˏsuOЎ7JP]B )炇ҜZW *0Z-D2sVM*2ŜG 7|"l{)v@Egho&Sm-C{WK!€bMjU~7_KPA@>#%L\ ?~sSY߯[8pݣ!E, Q@ET NjnQV`V[-o[^:!fw~5[W0P-4!t"W>yM-ļq=Bėc[tvRϾ`0oA=;/=ߦ~APb˕C^ KYs郡($O^[q>?-4W=#ByVϺ)_$u˪pXRIԪ˕C>)O4G-3UDtclW_9-%W\]kp)- iyٽ\ &^Hܒ]G(x9}(sdZcX%yhkԱ8gc Q%9w8_ۯ{ƭ(H%D#QHF\ s#ɹV RSd~5UKnQao)Jfoضh5\쪷-WBiaΟ} a)-;)fCUDRgXhI~vn9cGY=>?P20D=R5\=viJAw;l}J+70@5gbo#'MZoY^)7Kȗ!AHB>*f@'D| n^|Ο`H'QTm"fGR'P(zp6Z "Ifj3"H2H3t[%+/-%02P`]ZNRWTro_b}e>5@2Q3#,>ű_WjV6X(z-T1ñ/NBP pnc~Q"Elf9s;\e .RV~ >YL)"ڨL޿KǁH3}g>+AsvŴib& i>bI,ZnE||߽FV 3B"&Dh]4>w1-8[]%pg\ӵuY#n:T5jR1*IL/$D6nSJ*VbC˃P| $dfFpRDy P "]ʂy=@qQ]"0Z*4ib:DdQE+,gլ\A~*E7;\Sqr?h1#hztx#bv*Pwp;b<,2,Hfo ZH! ZIW@`fFRBD A_UB WGE԰d20=4D 5 9L&|xeo̓lꝎ!9|!,0Br}F q#Dחs}>||"_>l5܆rZ,) )b:|6<8%C6nU_ 7 |i2ZqpGM]Ο Dq Z[,Z5m uWio|D/ɝ(!t bDB v & a(Mc^A4#? 7*i9\pַ.ɯ!u tVt0)bZUƭH}qPNK-B݈.B ±eIbj/ظosȔr>k] ÙLt+&10r#%THk'GvOzyZ6aq ^H@,1Jp}prG_*P*#uj*$p=Ɖ A_?RGTJT)QB49!=~ČpCF 1iB@QNGx"I T C)-)qF>qTaz~9NkUh,ELCn听CK"P Bn4QB w[4EHc(.B-m s5Ϊ!Qib76H5+3ﹹ{`v]MG D#vR`fdI:RwpCIBD KbZ-@!G9}Qlq ͖:_|/l-ll69g%-DH1/ַ~~WVr}2V}]bA[@,%Ђo u턑UyCդϙ[y}t__kSFLm }`uBL9E&f?{4ŴK&9m9-E-̌!?Hl܊""FEo\HA7~'b^8X5@v׸8}Z6g̏)yd9]F'-z41,P 2ld9HQH/C|z!ƭ$Q 1ȪQL PL .d0j?{n9΄!QE]Oj}gw}i[vE mE7/R+P5o:!zNg{HYJNpp0Pdl|uN>NR ܐbZ%Qk1B"HE!G9-Y.C4Zɱy7R-D ώ1b@2Z ;CC4p,1㜕OAn( [8+DGk˜BF-K(\F+A_EQL sn qiӂ^,Nwn\!d]Ybp#_E R4 ͯgU P5܎Һ!SF)I|af BdQJKA@.fBP R4p#IH+8>yz𰱪S8缚U%^KڿKOG}aKv@GPM4^@ 76-!XL ]r|qpOA eUO@Is!$y4o ] )޲pO m50Ur_ON_H}"Tc}00T2D!:!r0ccuZ[]/=BGKZL "Cw#3FV %QwM5AM4Wqp|ݹy2{GeЄ[NK &6Y$:I.{&fIN-EPhɆ#ڥ]yWFjl}{@ 5Q#D}G}jΗ擻vDm_uŸx!aQ_9I;iŦUͧw]ČT.AH2wl*f-8>h94Z6Dޙ4^3x!d!է챲 i>Ԡ[;#kpHa-;Q꒕-uj#O>WH󊣈.w ш@m9.Lp$YNKor 8g(y[8#!MhSx1 W,uj;xE4iuVvcO5ٳ`5n7.97lJ{®R ׶t(ı)bH `BIAQ$3PPT*!:Wpn}AÜ[Ma1ڿGXy*o8͑:vr l̊ /vH !)czG[nu ML!fC* lZ>~ץ}y!E~fP/%c1Wjv%7FP ~3ELQ$5 G7>c~@ۑ%oNifbjik U h½}f6w&jZ|ki76'ڸLm!TAː &A3@ b$w~ga_G؍\)WE1.J&ft8;>rG 4fF=Us͋*xӂjߔ+}mGHH7*zl_ ELC̓`fsDA6nxݛ%ڤ8̩g{(z QH eQNk ``HPH7_~xk#fGQ)e"cT6Upn}`?\~A& fT*-t!}guzHMb5%HMrZ -z30}嫖'>ӦE>wDc]D8ϺAp b2ɧQώ"ffB)+v]$1 9>ZnRS.`nԃ#_}CvT2Ips7+B Q W3v^{[U5Y$rΠ\f?qO6oT*1|8bzJ @S;')æ! B@Ϫ5&1B|jFf -7~m[q|ܑD@0]<(^&ELߪYՆC}_$1yR`_Ü)ѣHG#PyqBt333ryㇻޱQr;[)gH}'s.f!F;ϵ[r{3/-6?˯CaAA$TrO$9Щ-QM˼k}Z_[Xmps53PN-nRj$ J(D {{)/($7"6jT3==+MqA,Cq7[y|zxO<Qd?{Z$_>WxN>rkK޾3KȺJ=.C'(R#ib3Zbyڐ'$d&I)bZo-hSŝ$[GZ-L!ąDfzVn;Q -HOS}ƁsᶇnuoQ gN! H{to. @/qinB.=sVm<޿53k;D?=tj˘ 7 b*'w ZE%+[߲mt1In\{ R \Z[H݇ZW,گ/VHP*%ВPp}oNy).+ĎN3/î_rR=P'F̎t1bZmܾv&2V3%r)]C4AABN01Lp5x =|z˜܉w T2mF7TC&$ܙv}xc{~ hort5Qܼj?Oac^|j,1'`_PnG-;`\3tN̮3N=m8]{| ;pF>-@ XB))s}t&yok1][/R^:usk!(u;>#13Ƅi/_&Q6Y #74b\g%u@-֘*{UG;wӓ5W=&ǚͫ BHL}05"N &5Y꣒#|3@$Oc-ֽΝO5\-u&'c^njbzq'`IDAT -0ޖ߹;";)fa3s!1kw< uve"5^"";[>ezYQPf#9^3>=/H*Y94DtUAp}pa맵f9s1 %ׇ̇Y}NjgJ9*9 jj'Onwpy]{;R1ڜl̛wUWNpO:4 #36/ 'wzIъR^Rc_ VVA꜒.fu -`"e 1>CfOtn1=5f]n[o%QO{[c$NF57DsZ˗JGHjI݊ݥpw\ݹyPUhpD[!sw5h ℄a@G7wacS=[D|`yg bHԾasլ< SzS.fHIP2Z~￴-; 8Â>W6L1-*V^ 4iSjXoe]9:K7w6%Kebj30+T#?x )6n)O>{|T)-޿ǵW+=kPҥZP鄆vG|* -խ vWko,&=SD@EM  rZˌi_=P(-PvNu #D]_/5I˹?eunp_4w!"FU g gffU7iV1H9l9T.EѣvL,X] Yi ;{ˤ(w%~)Ŵ5x=@Թ'zvօzĔzE ZEt(c%psoy|DH#Ib$G/6Uy'\@.8=jA@`vBBTr/ϭ8WD@%xSm̊\ r3г Zl܊9b_XumQ^Whs 0S{Ӵ$1ůɬ"ޯ_NE :QB޷X f^K󚠆c퓀8>, yDR3(û?F<GET3 y5hzMg>ww'](R*Ht@I г*L+PʳH@!#_>./@[ ]&yRGu7Embv@.Y4!MUǾ&AH5Xw\[Do%Sh1:N\ӉZr.T("`_cgxPJ஛c]*Y9Nͩ絆1/.J湹m}ⰻ=hS`^>v-@<|$)lrm̒: O>aᭋN͹fD|y\P)\2o0MyBE4ׯj>^9jQKZnE? HtZK%Z8Y塠9~ !QHS`ǯ|zn|O-or8P BRH%m SI~6qB 8Vܬ:9[0*YH, ]&fsD (Pm!iD!V )bBI -DV<)o:>qsϏGCmKCޱb͌2ZC.T]<^=mP-"y'&|Y2 ڻ6S3,b^ P[. B2LNR׮^fFӄ 'B)\#ujh1ܐ9C XၞW%wYRY%Ӹ O> Ȕ)f).jG8|B$H2ĬB;@ x !i!!MlњIiibƈ2ZRZZD1b6DR'VU5/$"QHF|v^)tS\qp;ʧ,̚*ag)f-^#2P@P@ s#Iհ}tho!ڛK73#X!y;f2- X#U@- h?;>(d&%_ۋDqo쇓O1q+Si)NSF$ qhM2(rژbX_f VAP B1-󈁡4!swimj^mJV@ݸα y"Z$E0I)b!}Nqyـ=!Tt1-U=;9#3hqUO|YRf%F7w.`/;Y-kY;ܜBpjx!qtS71|ŴIBJ*l7gkw}JBԡ z+~sU8!nIz/Ң 'w{lx`cPsieW(m9s]!fy}V]UNKW')4|~B)exl/ [Ϫ5GuKffu&5[QAː#uB-qt|w$D98uy0asYbNpo) y51Qk[s^Qdcy偄 F3={*D:6o:i.RVCNiYWh\9ՓZ|pu-5g] pG>K/=:_ \Q&޸#U_{"?v|XSy^>u|/ia~k-e&TcڸVn!&y3A5Uɱy;qmV4URt||+߭u_1覿tB'+zaPPL `fFtct>"2vW0w^׎lD!ib,by[41cP[Tqc죮b7>)/c%Bm035ol>^HDsiXyb^8,3uBAQP ~P w{ YLK5 [P%*ww:}lXʹ!,_DJ# .a62ZrZ.R&~QW:0Xo_5R&aZ#vбjVeԆ8m$Թ S1h6 w?]ꄱgڭ_ ps9lFZ4qmLd1mՐmk ,0;.ib'GΩzQ8l5eӤR&E=/%Q"Gîh]!zSO%wмoY^]'^HX`j4+mv{8S#W>WT3=&F*qd]1ގ82-a~E*9snsX"a5юv[?:[Yʛ  sxz4@ mͪ 85DH1mZ\ŝ|s[8=vf|Rցj- wl쫬|m땬"h5n KP\;ot§+?D-.y޵,.EgE4Nc'DZ +-eNKm;؈#H_UP?ll]qNk6v~j<8:|FL#Kvp8ͱY*pp;8_;ܼ+7N4{ƌf~ K סzAyYҼX^?`[U]/1N $-i@[ıKݾgyGx?Jz|TdXe]O3`voei~4ލ s`S;B~0ԥ:x*QUtgyְ+u1`e xzV1M^vncඨ{ӆF%@-L |'LpВK -nyCUcn~2;zğF!Ԏ@O?W>sidJ!%Q41nB)-CUDE={6WNiø4R@s+:J]/[ Q;ʧ>$ 1#U?Z? x%}'w]Ο}޼pP|^ԋ~UXE!tS\J~i8p 3/Q}k|֭s7٘7&`O5H4Z\dm LaŸ?~%,WtMثLU#8ɠ8OE [Zn#kJ  @)-o}ɧ(-6V0[x'?SrR[w=}ѴbZ=VnqsZۖN^U5rIǗ*C9/v\ P NScC!TӪYbΥhG#m]aOy>cF'`YL/ts)!p4΃=_Tn*?MhbyWO+ŻIJ a]k5VKT3ql)ݮm+\KJPqm.8"ҁ|aK@rJ8oq  XQK |O?y n)lm d1OjbV5geIENDB`semantik-0.9.5/src/data/hi128-app-semantik.png000664 000000 000000 00000021245 12732552614 020763 0ustar00rootroot000000 000000 PNG  IHDR>asBIT|d pHYstEXtSoftwarewww.inkscape.org< IDATxwEևT*`DW5U Ŵk5 ]**]s\PQA$-3H009QޞNwz<3קN:uJ{]ԹEǺV.RAvuE($h{=\A{Rj^p^< (+G8 RģXSJ]zRMT Ԁ:AkຠT~J:5Z$Úa'J/Ju<.%N-`PJgEEb_ȩE3 xL3Jnioxpqw?LWx-jxLdx/ P$t'?2$@Ghw0RGB.ismi|# Ű}<<(^? VHG}ނD@`cpb_Rcn??`lUP!"| w׷Bz<&\dY5Ch ! 2{ﻺ3ᅻEƺQ]-"F+]II>(PcP"s@wm^MRyx;VyCI+ Y /xj0B8.^{my0wRhnY#,9pR2ʀ@_eo΅PVAXy O#-g 2F@ȚU[Mm»xl`e^>981hɐ蔗ɖ@ނ?dz-.G^77t^4L~YEC`J JwR&+]0h8+m5p\S(. ovFEss"ۡUn}nY@7{/TCg![p8tWT*'n35,Ӷp^( &{ 7!XFl1BX:1[8A-~ ># \X,^b0zAU"lÑ;,X8 XKI[`!"&:pmFsm6΅06/?j."|wڧnViz˵J p#pP>~|0L&AARšvoGzeZMD 0ɬh:F#_@g.dd㭜d`upf翂DG-Vg0,}յdd PJ5{`A9S!ej*j^N~ jB -z]1F:-'1^'ʨHkhet8UI/0 > i_> Ӡ@5z>pzw$-bP- afx (͂;~Žep_G5/.U}*&0ego#bhR\v/!A4 &1X pTxv+<~<>z]% [ d'Ϥ.hpz(qMirl(DmR Wl] 0y!5C2{Q GbpddLA@VŒxKh$|6v~=6=́W6Jif%oKT-RS:<җ| ?%q#pR&vO\ߋƳ~i!c"H?> : -_ʡμy$EP `J%F噐BÝ:Vj . [Lݾӂv/ixb9L_A@Y?C 0La_ۿ!JN/գ!k=#?q'xoD/yp:"R3~Lnki!08jpf%h۪֯8eI"Y t2$UUP-T@HZD8W׫NBX9pxO;; Ÿ;BWp{pq qFjRGÀH;Wg]6Mx>\>( -5A|64*/6: lŵd=Ԍ%ald} wDyn*G5hV~{B >n z@Us^ =pvGhr6ٷ4|`΁kaZҙ%h{뇐HCr;=w?a^۲cS,J1R n.5.ZY kAf,c<AD/nBlm+`T dg:=*BZ ] cf„l7sF_L?CEfH /7ruq`4@s#c Bޔk?7ޮuww!/ /~_-+4a,Ҷvjb.‰M5*"{9 uH8BdJ\)m_hYAiFXr-(бu%h:7^et$X ;"}Pn<,Ir诐.@xL@B t0^-f%F|MhA@~>ź8-52ЛSB/΁/tAy2Y &O|7d=lᄁc42 ouTG9   aL-nr ;X dAdy:Ibx} P ,Q1 EP Ns4HC[8>(}Qg;aUZV r\`=/ڜ in-OinJ;eZ\f# A {x8!L\cʩ`r 7P r.tAU;>ˀNnYn^H Z~_}7ؾw3j\CT̊DKVi@DEEC6@1–0e+%P: b4?3DhaC@0%Z@݆T/CLPF0^> AQ8@DX >faŔ"n"wũVx|)L˅B([S{38xʩR;]ܻ ׸/q)_ZSvRri՜w;+-8NCz e.,q8JsHL6=e c|_Vw{t(rVe~5 a$'HsUNd;Lށ6dٿ"̂{ n"*iZ`g+2Oz'<Xhwe֏3iO0wi ,G<>J0M @tP؂qލ&$9e4%A_`:`kUP"2\dS L1Aw`$v{G d@wIGmA&Y6=@/`V~\ ym/и<>ܓJd5߆fA#ɏڢ#[ :ȱGCnER50 yΛק:G_r~dHgq3F0o5#`N&CMo2#8KYgbd8 k0\2hWhXkSʂh~Vd!|`q~5^et {O՟Ð_+GJݴN).@{_v]Yju@+P$!b }g)5y~p)|aKl2 YC|"!/qY-f6@i|EL#/ 4Y$Xfز>zI0ׁ<s:|TXfX\,A`w2yYwҵW,Z+(W,"ivzk4tMutP8-2!ڃ1g4*k>o*VEXM6],ׯ)3ʹ[ YD;Rr{'A^-_ å諨Z~ a-AM^T!ls:JfC]|{YĨW7e/r+4 Tgm7.7L] s S׋֓ r#\u4\tSiAEhM4fXn0C=Ҙ'(1i]W{<#mA.KY`"NFQS`9 [ӋlJcWt/=rW?^6wr|̧)(50s <5 {Mu+E֌e7\0y;J\щ#=NΡ~ma\5} 8W*uƹppXnS~H\B(̆]áv펆; }Ϲг;/Fo\W\ x< ?ƃ]Cgs4A=0u>7$v]j\\ȅgҰSjVuhjw‘;-kn|5@n;wpu&7 yr-HD~:[m 'FhqTM7}-G͇woOsM9{$k r2)vO16c"E̓;w ¨n= OE#0H+d@w`:|-z:S֓ g6N :`A4Pdx֌q\C)MhRcO^.dЦlE'Fc#R-z&eJD%g70U U8ҶtȨ5q(9DlؤX!aVWּ8-;D&ӉsX{?j *^5Ȭ84 Vm]+05O)ub̹Udvsq"e_A)ǼpwjDjbQrrhi L*ݳg=(w>Ƴh{T4y+.n }!ZTVGRC>WK{Bmȟj,9zWSƠnz|nj/9}ChS)J /̕pgJ uI R u5vvwEoM@_BH-Hw Ž@] rˤ?ק R`  IDAT0y@k*.)uyڈGςs x/`Y ,5ܜgNg-Z<ԑ}}M:}7^$2xH"j.2b58gR Uu J-(0@6sP7 @,|HY"׏APK>~Exy?oGƏEriu4ICH-"JW' VK`RKጷD\'DVêx `'T$ 3|jm(aM>Ju9Ocx*0ow"RRS"Q9G$]z̓qձ1Rzψ,Au>PDJOl΄e*N3B1K=1uհŋ̆-\y NEŜ<'\}Ĝxc G7~8q ǩE4ʡF/0KB*ʔJIENDB`semantik-0.9.5/src/data/hi22-app-semantik-d.png000664 000000 000000 00000002566 12732552614 021122 0ustar00rootroot000000 000000 PNG  IHDRĴl;sBIT|d pHYsII㉹LtEXtSoftwarewww.inkscape.org<IDAT8RilU=}KgigNiЖCH!,j)ӈĄh.(`R*i m6Ӆv:ҽ3aL œ}s`a+cب\۬VCҹbiMM c>l!cϴ~QgOP5kbO9h7_v/cB8L\e:5E[+V hxQ:מi[1vjov6Kc*nZ ̥nSGctP(>$_R{g*~EkZ틙a Z_XL,U|- jC7JJL% (h4t%J:NRNÈ648Mi}_Ocoq_S[/'JRܜ]J\&k#V{ 8g9Ytj^8;O\aUHT((\\> MaD"[Cۊ=JR)5.H8·2f2% XE b5 Gm>#%r+KI $.N#I24%74fz+""}Ν=\(^am'I£Z(r{p:q%:[)$Mn  >9TQ?7=p4_JUleB~FI]I6nŏR .p1-l  'pi~\햀~ #ʄ+g " w0}Ν2n΃F6_i;W32އ Z<?4 !u8hC G @CxNń/vPaSb!$Bm ""R;$ *SP,B&x.W*R|{e>{xMb}~P)mT*W!ZwFS3Ű6:}JoJ:o^\jcBٟtg/WH,VdS"<&C)67@Woi:tԇ0y(ۻӯyTuJl'^4 !9/^mWڤ0`BW&!xqŘ{gY4>.r1 c~CŨ: wL.Fv ㅨp=sUeȣt0 8YSZIENDB`semantik-0.9.5/src/data/hi22-app-semantik.png000664 000000 000000 00000002006 12732552614 020666 0ustar00rootroot000000 000000 PNG  IHDRĴl;sBIT|d pHYsII㉹LtEXtSoftwarewww.inkscape.org<IDAT8KlU生ն@)w ( U.jh4pC@cq傅qA,TTԍ x&\vJK)Z.) ^hoKqo̼of9bnw c{V2h#2>CQol6a&Y%vΏu!,ӣYcmD23OqUݶ9 _>͠e,c݌J%ZRN%_dS Wq;(MٛqE W\!dKǍz0JsIkq Uds [Kng'{doc_1g$#Xۥ]쫦m Sd*e!kcFq'0L84Ε`a RyzL!I%k:DR( ET(Mdya:z]7!U\;WmoN얈 JI I>_kBKpS/ڴnQGT]uG]K=w hd~NQG!q"̃n$D|ؖr{@ wgD&jO*Jl8L,zڹHV1. $Hm}>T*pN;s8.b#zø|VT~sT<{aamC~yqÀ{o\bɷ`r.g+&jgtP>PSW*z. JlpP'},Ĝuz'_*(\e墬Ɏ^*7HEMĄBxx3eQL݈AEJ ` Q'NgNFef'ǃ^E(rᆲR݋%H{إRy@@p.`"nwݕ. /:I7ڃbi .hmy%rfNFg·\;R-}bc*a^kOkKaۜ=g_|H?Z=RezH8O7\CCEm@ H Y=Hb֞׾juzN&~clwq"u]_s^Mv+!2U[іz?[ȐHŦYOև?RyǶgŴHEZ(}u#e=_7,y1Wܜ1ZO=YϜ8кڹw-;ٕ5__Mݿ&.ڤ}ZrWV@4n0skœɌGB'lmѢgIENDB`semantik-0.9.5/src/data/hi32-app-semantik.png000664 000000 000000 00000003053 12732552614 020672 0ustar00rootroot000000 000000 PNG  IHDR szzsBIT|d pHYskk_[QtEXtSoftwarewww.inkscape.org<IDATX{lg+d0 10͉rblAE#q? iP KA2k(EaPJZ:ʥ_gV^<ɓwnsYӘڕl3_W`31;lFsScV~/ɇ(^kyg'$3i 24m'bKWͻL ~z/_eGE6p3$Iwa4GTD˞M;1{_Z ?l2l~Q)4 ژ\ ʀn.$SII7>O 5(Eo?Ʊ,^]!ғ魩A)%(g{1c#H 1>kYC^I7LwXu Uķػ%|=ƨ Ƙ9F]wzr}&ٹDt[IsTJ"n-/L#J -,$OuSyv$A~J$P|/!ܑ}:LI.FܔG~syasFs -x1fb et@ovgDNK/\{uنkBmZ狨C;8uۆp)),E kx7Q,l O#Gܛ73p8>v?򞄿f-ܵkX[Ńi7T/QJq/]̴ P: yew<6m2N/^@GӬ4-wNwF]jS<,2z_ an-`6 NnLQ&KP=*c> db+ PuqI ea$nsSb%qnR1OW05pE x:%MX7q7J۱ۮ2lߜFc5'֤֕]B(ZLE_)WShly,Ɩ|`!sS} کeT~߼0!GV&0'mS1>Q_||]¼B%;7b˻t0TWte(\B?V;,%IENDB`semantik-0.9.5/src/data/hi48-app-semantik-d.png000664 000000 000000 00000013206 12732552614 021123 0ustar00rootroot000000 000000 PNG  IHDR@@iqsBIT|d pHYsT٪btEXtSoftwarewww.inkscape.org<IDATx[wt\+V"vլbEMn4/ Z( !`Z` 6r{Um7o?]V}؜wћwf{-c7J˓h/!k!Kj of z-dU3xԔ;^ܱ B< v\EmV]ƓFV\5smϐ&Ĭ0}\0@%4{×%2n08Wu ^c0Jju3_\k޾eaYzw<{iΔ_&@~k%gN9Gsѳbx_ ͰG1BU/zD!%^!QHA0?Y3{c4o~`&^j8>qH4_3,^yúBOz2{7OL{YGz/]%-G4^8c5F׫jHuBn:8!$#:fo?Afܜu  3LLoT̹/bN qSVA$#ʮo{q0.t*@nɆݾcCox[Y 5jF ha τKc !4]G hƖkԪ Cőy]X.aT͵9Bfn}A@ @D?aZfRN/lY0 g &tl wl2w{8B;V/v7nb ```PQB - #y`pN6=ǥɺU#iL-!淋twu쐛_Pθs]*ON/_kobQ3"u}2D!YHEZ# DGJ q|8 X9 *i9:oרCFPK0B3M$EФ6f΂"%BUWЪ6peM͛{4?/2I;sDM0\@RBr'*Zp./xPE+b.$ >|T+Jvc^d4MPP AHs8拞[64{vѝ=C>{"WO @xl |"7fnXhRbvy.+* l_FKǣPC(!k_R!Ugϰup$ձ @r$9+́]-KrjH4ޔ?qb+瓺KAK!m";Xrnvzb@Q|n Ty 'JՂ0dD$ @Q: C1T>bzQl BK=҆q&q&w~d=&'g\ XrM k9VH8Sݕ-V+CaE)Wk!3D(N m[ZN&B*QBlSxoU5V#`W? Ռ>7&亶KG7ԩPː'")D)BZ>\ϩzQrbfrS}sdmY F"5{e.D8bwoȅ#QHA<\lvZ>|.B%6Bb8  `8 vZk?/>A`HɇB$!!hV |";3_jzjF76:yir3A f.| |Ӌ5wĬZ2V3Qmp(*PVퟧ]B$5 1 _Ws;O䢻,{ 7ܰ+P{EB {B=U3 B"|AG-we1b}}|j%{ΜlUVDqv=ͳjtOPNn Z/|c=oU3npcS{#zF M+"x +#(V `E0paxyY9UF  -BRADp>:<(>D󱐈V̐/{oxAޔM1>46<&Oyl{m1K*FJc^CU Q;:F-|0:ț*6uu'=Oe@Z ZY (!@Z+bn s:N^͗w d.5/OVH\c `oLO=;J|Nn5O( 3+!/+YD"8 $"߫{ߊt=4Y;}b {ǵ}(i8ؠBa/8X+ ͸.˨}@qHf,@i9,ӣuK:M/MZ4\"T08Y[ڪ'P[ j߶ӵy缐۷dSFp^>󢕋 !Z{V+Wzc4qT~43gJEj=Ԧݹ/ow si&ր 3g SPIQB7Ǖ#{:8 :'~P*jOt]S '@,q}BZh}f's5P]?+xpg)Z)cX8bOAqϡ>jh8 .HHR" otըU @!yYs1#5'0Mc;j*h)cc ]}gjYB.~u]O=Q@&=3 <sָ>Jǫ91.CV=gxc8W_  ~I}XԨUSk@Y[<ƙ@@0 dNW 9)t7N@ khl6G{f ii'9!y'nS_07&I_1R?Av^ wL~9 *hbv5hPps|"f΂3Pgb &#4p2J !~:1GZ0be$okϣO7>mhޗKyv"JZ>5jBHhz_)!^NӢt"Y1-8UW }$ i1ީb.ԫ5ǡa|iXc>+}}q +zoB<k'I˻)! c9< }8t9-B"!* 6!$4ln9J v(* rVFV jTIکf+m1҄5=ǫ[#VXJ(``hTѠ{kƙaoA0jcOsr;ZeԎ"%<DijKu42sHYIIB?8= ~j!NAmY D]}kl\@Q;ts*[ ͸vQW5Pd WhQ :ný.rg fb&.Z5}KZ>7C,-kc(;-X)@,HݎviB0j9RTqn#M-Ueʹ24b'F2 A cp.zw%.,h[c5<;-9Rj%Gw6ݛ Ua߷/9 hA@+[#W,?0$S;}6/̔&g0S;¹JZ3oVւJZB;kjѷBxPI۝6ZQDQU Zɘ*Tة |"((ⶍ7}5ɉ3͜5+;B"-c7mu9k_5T9K[QyƵߛ(̨Sk\h^5Ŝpv%JVm[k6tfsgL Ɏ :Yv8tE8gluER vԵ j(gjZs4NˇaᬾXWU+727l| iijY3^VFg ׽s*@RShλs]Rk|9,\,4㒽N)g@^Ps7eop}zk4aФb|[f.oy'[W0#-,4> ݕp 3B 'TM Y~ۭX?GyPʾo ~*xN`e\jYS(.;>ʚY8kOHGGo[gT [§9-Or_߁5M )[L%Bo{QGsMσޙ [N.\kPB<n[,e*yv "9Ssc- %|H#BHp i=|گv8s^XX= =wDh]k~kL~j{U ׈xM򚬇ofEd9BZthU˛'=r 'z-݀?WI$I[ RcI𿙂 ƪiFߛ~ˉڌpT!+txcNeR[I{7Kv7C9-^*nIHs&~&OgI>|$Xrµ#~pz/bϸEWȽSz9ۇ#8IENDB`semantik-0.9.5/src/data/hi48-app-semantik.png000664 000000 000000 00000005201 12732552614 020676 0ustar00rootroot000000 000000 PNG  IHDR00WsBIT|d pHYs]~tEXtSoftwarewww.inkscape.org< IDATh{Wue,E4f1>Zkã<X 26Sue2iJ"#T O7(S  0 3sǽ7\o{~޻>}s~QGʭ4ak{|ߋ?C9vPE(,-0whHgpIBKm }ןhrEO~;#鶈Kya@hOf#q1nȲ+:)q{O4;? .@S|e-ǎ^ƒZj~CߥJN#M8'F|/EѸXG/z@\:2sY l& B='m |@ $|Ky#c˽?|7. ) @xo=n.-IO)}˥lWy?Mg6U9N(W" ))w+\K \s101Z*K_6}uczύTL9.Y8W`#UOgQp#輛x%sBͅ3 d)qg}kU|/\8~% pC%zlar?JE]?*SPS3R>.aJœX2u[il$|@EhJ I Bywk乁PJDZfi[XYx4'p)¾V4.՛ ; +}31Khڌ 6>:r밅cxQJ ·/3):Ÿa}}Q2|J.'~%2k oGb|Dճ_^ !Xό@8>-vgܣ%I{XF8J6{HK1hWX)QΛ7ӭOd63g>jp KVvƲeE1G{>ۣ`<ťbB2Tw8@5 Gm,HeGb|SկFѬ!k`{3+Y5CI pwobvkHz;ń$}fd}?YFP.=~~|&U^NhNK~)aM$x#Ti2{!u](!E|w2sK%*gǛL~%G[ S8Z,oG-c} }YW$}CC:J2~Ϛ,n5ŧldP8;20ǹݧV[ O1 (cS-}z5;Z; Y!?%\Éظ8_zWc7|g3KYO߷$z^l~W,v0b2'^3 4Jk/aπE;ĶdBgk!$Ƿ]rE3z̰'|8ӬrXՎ,;'r ɓ] vP)4mqLMM~?lY8իY# }un G2Ii0qN>|y !x1B;[NVŬY,&;6$.ZT!\Hf|aI Z(uF3?o-̪gJG-%(*,gq\͒Uc8y $;.vq";/.AgqPFu Eg =|y_2rp\ϞyxR&|yhW}fP]" 쮞"lzy/DQc!XKM|8볕Nw;Lz.ke@E"I(oXɭt PSn%Ey-#r繢ۉ4u%X%'%yo .ȸND@"@^ɷ N AҒ9AԖqp;w!LmӅħ^i{ߖѽH0c'?ggN"ll#˔~DyLhkfOobf\h>d$FՍؾJ\nIܠ1q$n:o"s5W{Smh 8)~u;FDQϮ%Eѣg3xs':l(Uq~ 6ߢ”=,l  aܸh|gqtڀ#?0Uɭ[Bxt1QQ w@ZWtrа(Ї9B1M;=<^c0Jju3_\k޾eaYzw<{iΔ_&@~k%gN9Gsѳbx_ ͰG1BU/zD!%^!QHA0?Y3{c4o~`&^j8>qH4_3,^yúBOz2{7OL{YGz/]%-G4^8c5F׫jHuBn:8!$#:fo?Afܜu  3LLoT̹/bN qSVA$#ʮo{q0.t*@nɆݾcCox[Y 5jF ha τKc !4]G hƖkԪ Cőy]X.aT͵9Bfn}A@ @D?aZfRN/lY0 g &tl wl2w{8B;V/v7nb ```PQB - #y`pN6=ǥɺU#iL-!淋twu쐛_Pθs]*ON/_kobQ3"u}2D!YHEZ# DGJ q|8 X9 *i9:oרCFPK0B3M$EФ6f΂"%BUWЪ6peM͛{4?/2I;sDM0\@RBr'*Zp./xPE+b.$ >|T+Jvc^d4MPP AHs8拞[64{vѝ=C>{"WO @xl |"7fnXhRbvy.+* l_FKǣPC(!k_R!Ugϰup$ձ @r$9+́]-KrjH4ޔ?qb+瓺KAK!m";Xrnvzb@Q|n Ty 'JՂ0dD$ @Q: C1T>bzQl BK=҆q&q&w~d=&'g\ XrM k9VH8Sݕ-V+CaE)Wk!3D(N m[ZN&B*QBlSxoU5V#`W? Ռ>7&亶KG7ԩPː'")D)BZ>\ϩzQrbfrS}sdmY F"5{e.D8bwoȅ#QHA<\lvZ>|.B%6Bb8  `8 vZk?/>A`HɇB$!!hV |";3_jzjF76:yir3A f.| |Ӌ5wĬZ2V3Qmp(*PVퟧ]B$5 1 _Ws;O䢻,{ 7ܰ+P{EB {B=U3 B"|AG-we1b}}|j%{ΜlUVDqv=ͳjtOPNn Z/|c=oU3npcS{#zF M+"x +#(V `E0paxyY9UF  -BRADp>:<(>D󱐈V̐/{oxAޔM1>46<&Oyl{m1K*FJc^CU Q;:F-|0:ț*6uu'=Oe@Z ZY (!@Z+bn s:N^͗w d.5/OVH\c `oLO=;J|Nn5O( 3+!/+YD"8 $"߫{ߊt=4Y;}b {ǵ}(i8ؠBa/8X+ ͸.˨}@qHf,@i9,ӣuK:M/MZ4\"T08Y[ڪ'P[ j߶ӵy缐۷dSFp^>󢕋 !Z{V+Wzc4qT~43gJEj=Ԧݹ/ow si&ր 3g SPIQB7Ǖ#{:8 :'~P*jOt]S '@,q}BZh}f's5P]?+xpg)Z)cX8bOAqϡ>jh8 .HHR" otըU @!yYs1#5'0Mc;j*h)cc ]}gjYB.~u]O=Q@&=3 <sָ>Jǫ91.CV=gxc8W_  ~I}XԨUSk@Y[<ƙ@@0 dNW 9)t7N@ khl6G{f ii'9!y'nS_07&I_1R?Av^ wL~9 *hbv5hPps|"f΂3Pgb &#4p2J !~:1GZ0be$okϣO7>mhޗKyv"JZ>5jBHhz_)!^NӢt"Y1-8UW }$ i1ީb.ԫ5ǡa|iXc>+}}q +zoB<k'I˻)! c9< }8t9-B"!* 6!$4ln9J v(* rVFV jTIکf+m1҄5=ǫ[#VXJ(``hTѠ{kƙaoA0jcOsr;ZeԎ"%<DijKu42sHYIIB?8= ~j!NAmY D]}kl\@Q;ts*[ ͸vQW5Pd WhQ :ný.rg fb&.Z5}KZ>7C,-kc(;-X)@,HݎviB0j9RTqn#M-Ueʹ24b'F2 A cp.zw%.,h[c5<;-9Rj%Gw6ݛ Ua߷/9 hA@+[#W,?0$S;}6/̔&g0S;¹JZ3oVւJZB;kjѷBxPI۝6ZQDQU Zɘ*Tة |"((ⶍ7}5ɉ3͜5+;B"-c7mu9k_5T9K[QyƵߛ(̨Sk\h^5Ŝpv%JVm[k6tfsgL Ɏ :Yv8tE8gluER vԵ j(gjZs4NˇaᬾXWU+727l| iijY3^VFg ׽s*@RShλs]Rk|9,\,4㒽N)g@^Ps7eop}zk4aФb|[f.oy'[W0#-,4> ݕp 3B 'TM Y~ۭX?GyPʾo ~*xN`e\jYS(.;>ʚY8kOHGGo[gT [§9-Or_߁5M )[L%Bo{QGsMσޙ [N.\kPB<n[,e*yv "9Ssc- %|H#BHp i=|گv8s^XX= =wDh]k~kL~j{U ׈xM򚬇ofEd9BZthU˛'=r 'z-݀?WI$I[ RcI𿙂 ƪiFߛ~ˉڌpT!+txcNeR[I{7Kv7C9-^*nIHs&~&OgI>|$Xrµ#~pz/bϸEWȽSz9ۇ#8IENDB`semantik-0.9.5/src/data/hi64-app-semantik.png000664 000000 000000 00000007176 12732552614 020711 0ustar00rootroot000000 000000 PNG  IHDR@@iqsBIT|d pHYsT٪btEXtSoftwarewww.inkscape.org< IDATxy]EM ( p<Āą9, 8 8rFG 8#npDAq HBȂFYtӝNtqon9~yV}U}_}[խ'|>7pA[ _SfX.Gрޠ) =&+E +}bBB.>E'G; i1L a'9(z_\2":!w)x!B#DmjcV~4Ŏ'7Q{9>MT4=.pfyMy00iKC-ƋZU8CF6+!}I%qUK%4^PLUO0x mK_ǥL/.WQgs)w,-:5~(]fBac =dC}o#au򼔩B×XW8]KyS;8%@h'a gi!3P*m8Xp=g6U ^8WNx'Φjlf@B^NO[gggš=DMy]Gx5OѻuL=W|#6p8m,OI3hX+8Gd,cJsbEL웫SjvEꜨi78V1̹Os=_tML!qZ-[Ŷb)ZT Ye\i=/2ݡ yq { 55Wm53&wiH'm ªY,|.c3M2>Es_rfWH2f&#$odGx-qTe{ ?w%VG<֒07+[JB u%5+dc¹+Ȝ+4LKUK6v 6ږS&R߮c;}"5Q"1|Um5T)1I0Yz }[v/TG]mofucS<94P54rw]Š⣲(|/fzٜ8 }2ۊR,ePZt\L8j8-GQn_KS!r@3Uy+0)s<JLbWܓ)M'v58N]=0f]sU, N~7M<X:7B(ɣ n!(О8B3l%߲ `PY˨{᷉uS <~laE.0-ML*|3%m7QŨƇP0Z ]|S$`4B S\I@(p=?LMaD0YS-v ~7h#gq6`1h+=݁KQtY|y?E}i'rQt]OcEWr/|dr|(BUCX).]énmzFDqØ6!E5Vmb3!ǦbgWo3 > Z!|m?3xbZh)O۴8(ݒ']IENDB`semantik-0.9.5/src/data/more.svg000664 000000 000000 00000004517 12732552614 016521 0ustar00rootroot000000 000000 image/svg+xml semantik-0.9.5/src/data/semantik-d.desktop000664 000000 000000 00000001026 12732552614 020455 0ustar00rootroot000000 000000 [Desktop Entry] Name=Semantik Diagrams Name[ru]=Диаграммы Semantik Exec=semantik-d %F GenericName=Manage Semantik diagrams GenericName[ru]=Управление диаграммами Semantik Comment=A tool for editing and organizing Semantik diagrams Comment[ru]=Утилита для редактирования и организации диаграмм Semantik Type=Application Terminal=false Icon=semantik-d MimeType=application/x-semantikd; X-KDE-StartupNotify=true X-DBUS-StartupType=Multi Categories=Qt;KDE;Office; semantik-0.9.5/src/data/semantik-d.svg000664 000000 000000 00000006500 12732552614 017605 0ustar00rootroot000000 000000 image/svg+xml semantik-0.9.5/src/data/semantik-dui.rc000664 000000 000000 00000002343 12732552614 017751 0ustar00rootroot000000 000000 &File &Edit &View &Tools &Settings &Help semantik-0.9.5/src/data/semantik-logo.png000664 000000 000000 00000001255 12732552614 020311 0ustar00rootroot000000 000000 PNG  IHDRPsHtIDATXOQ{BҚU|,4 01aMlXR"A HWHLaA:@Zf3oΝ\  [ǁ$ nh0 c |3˴;tK mDBa5iy$V `r"*H)HJ&'O?ɼP\b߳ۧ\N5v])߾HPf'GE BZ-.%YUPasY3_Dg9`w*:R D|@a&|vJًy`޸y $:&q4|=Rubw^.?MU9\2> kK42jn;$o,UkcG&eE 0"ŢxmD_ܿ9 , for the openSUSE project (but may be used by others). semantik-0.9.5/src/data/semantik.desktop000664 000000 000000 00000001453 12732552614 020240 0ustar00rootroot000000 000000 [Desktop Entry] Name=Semantik Exec=semantik %f GenericName=Mind mapping software GenericName[ru]=Ассоциативные карты GenericName[tr]=Zihin haritalama uygulaması GenericName[el]=Λογισμικό χαρτογράφησης ιδεών GenericName[pl]=Program do tworzenia map myśli GenericName[cy]=Meddalwedd mapio'r meddwl GenericName[et]=Mõttekaarditarkvara GenericName[hu]=Gondolattérkép-készítő Comment=A mind-mapping tool for KDE Comment[ru]=Программа для создания диаграмм связей для KDE Comment[cs]=Nástroj na vytváření myšlenkových map pro KDE Comment[fr]=Carte mentales pour KDE Type=Application Terminal=false Icon=semantik MimeType=application/x-semantik; X-KDE-StartupNotify=true X-DBUS-StartupType=Multi Categories=Qt;KDE;Office; semantik-0.9.5/src/data/semantik.svg000664 000000 000000 00000006453 12732552614 017373 0ustar00rootroot000000 000000 image/svg+xml semantik-0.9.5/src/data/semantik.xml000664 000000 000000 00000000653 12732552614 017370 0ustar00rootroot000000 000000 Semantik file Semantik diagram semantik-0.9.5/src/data/semantikui.rc000664 000000 000000 00000002650 12732552614 017531 0ustar00rootroot000000 000000 &File &Edit &View &Tools &Settings &Help Colors Toolbar Flags Toolbar semantik-0.9.5/src/data/tips000664 000000 000000 00000020505 12732552614 015733 0ustar00rootroot000000 000000

1. Essential commands

  • Double click to add a concept, type "Enter" to edit it
  • Double click on a leaf or use the link mode to connect concepts
  • Double click on a link to remove it
  • Middle button + move to scroll on the map
  • Scroll wheel for zooming
  • When a concept is selected, press enter to start editing it
  • Control+R to reorganize the map
  • Control+H to center the zoom on selected objects
  • When a map is ready, use Ctrl+G to generate a document

2. Adding diagrams

  • right-click on a map item and select data type: diagram
  • in the data view, double click to add a diagram item
  • hold the control key pressed to drag connections between items
  • to remove a connection, double click on it with the control key pressed
  • right click on a connection or on an item to change the colors

3. Advanced features

  • Control+Enter to add a child, Shift+Enter to add a sibling
  • Up,Left,Down,Right arrows to navigate one item at a time
  • PageUp/PageDown to cycle between trees
  • Alt + Up,Left,Down,Right arrows to move items
  • Control + left click on items to link them
  • Add document generator hints using the 'Variables' dock widget, for example fancy_off=fancy_off (format is key=value)

4. Data types

  • Right-click on a map item and set the data type
  • Graphs can be created in the diagram panel
  • Pictures can be added in the image panel

5. Diagrams

  • To connect diagram elements, drag the pointer from one box to another while maintaining the shift key pressed
  • Right-click on a link or on a box to change the properties
  • Diagrams can be saved as individual files and edited with the semantik-d application

6. LaTeX export

Set all_latex=1 in the variables view to let the beamer and pdf templates use LaTeX commands.

7. Diagram size

The size of the diagrams exported can be tuned by specific values in the variables view:
diagram_width=200
diagram_height=500

8. Diagram editor

The application called "semantik-d" can be used to create diagrams individually. The diagrams can be imported or exported from the diagram view of semantik. Additionally, the diagrams can be exported to a variety of formats by using the command-line. Just specify the extension, and a diagram will be produced if it is supported:

semantik-d /tmp/foo.semd -o /tmp/foo.svg
The options "--width" and "--height" can be used to change the size of png files.

9. Know thyself

"Know thyself and you will know the Universe and the Gods" may be one the best joke ever told. There is no knowledge without an observer, therefore knowledge is always about oneself. And since observers are indissociable from universe, all the knowledge is about the universe itself. As the whole universe is observing itself through you, all your knowledge - gathered or desired - is just the illusion of your self.

10. Use the appropriate views

Will the recipient of the information understand what is meant? Since listening requires an effort, do your best to entertain the reader, or to avoid obliterating him at least.

If the data that you need to present is a tree, use a map. If the data is tabular in nature, use a table. If it is a graph, make a diagram. And if a picture is the best illustration, make one.

11. All models are wrong

Once a document is created, it is difficult to start over. Why do not we make a single map of everything like Wikipedia for example?

Consider the following:

  1. All model are partial. An infinite amount of models can be created to describe something, as each model will have an observer with a particular point of view.
  2. The model is not the actual thing - the map is not the territory - this is the fallacy of reification.
  3. A model gets out of sync extremely fast. This is why temperature regulators are always wrong.

The truth lies in its permanent discovery, so the past mindmaps are always subject to re-work. Knowledge is therefore more a process than something that might be worth accumulating.

12. We become what we think

We create models, and such models are limited. Yet we are using them for decision making and once they are accepted, we are reluctant to question them. Questioning requires time and effort. The best approach may be in questioning the information before assuming it is true.

It is often believed that the best way to control the masses is through the emotions, for example advertisement may create desire, or political speeches may create fear. Yet, the key lies in controlling people thoughts because new thoughts will be built upon them and the resulting actions will be biased. For instance, advertisement actually works by giving consumers a reference frame in which the products are familiar.

This can be used for the right or the wrong purposes. For example, learning about mathematical symbols provides a vocabulary that can help with solving difficult problems. Teaching children bad words or racial slurs provides them with tools to hurt others later on.

13. Question everything

While it is usually counter-productive to question one's perceptions, one should try to refine and contrast them. What is the intensity of the sensation for example? Does it have a taste or a color? What is the smell of fear?

Thoughts are models that reside in memory, and they become foundations for future thought through analogy and comparison for example. Therefore, they should always be questioned and controlled to understand their limits.

14. Pay attention to what you feel

Sometimes simple models can lead to a tremendous amount of pain and suffering. Here are a few great ones:

  1. Writing more tests helps making the code bug-free.
  2. Obesity problems can be fixed by encouraging people to do more exercise.
  3. If bad things happen, it is because people are not virtuous enough; more prayers will solve all the problems.
A common point in these models is that - besides being useless and ineffective except for a few - they require an unreasonable amount of effort and energy. They will be advertised by a vocal minority with an above-the-average amount of energy, and make everyone else feel guilty about them. They will also prevent people from pursuing more efficient solutions such as using safe programming languages, introducing regulations on sugar addition, and promoting welfare and education.

Another example is fear of death. As we grow up, we gain the concept of impermanence, that things change all the time in an irreversible manner. Then we add on top of this the concepts of alive and dead despite the fact that those concepts do not have a solid biological basis. Then we add to that the idea of uniqueness of life, that we are the only planet in the universe and the only intelligent beings capable of feeling and thought (though in an infinite universe, there will be repetitions, and we may have twins somewhere, albeit very far). And then something magic happens, despite the lack of proof for the concepts enumerated previously, we just suddenly became anxious and worried about the future.

Feelings of unease, of fear or of guilt are there to show us our state of contradiction, which means that our thoughts and our models need rework. Pay close attention to them when creating mindmaps.

semantik-0.9.5/src/data_view.cpp000664 000000 000000 00000001737 12732552614 016575 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include "data_item.h" #include "sem_mediator.h" #include "data_view.h" #include "con.h" #include "sembind.h" data_view::data_view(QWidget *i_oParent, sem_mediator *i_oControl) : QStackedWidget(i_oParent) { m_oMediator = i_oControl; m_oLabel = new QLabel(this); m_oLabel->setText(trUtf8("

No item selected

")); addWidget(m_oLabel); } void data_view::notify_select(const QList& unsel, const QList& sel) { if (sel.size() != 1) { setCurrentIndex(0); } else { notify_datatype(sel.at(0)); } } void data_view::notify_datatype(int id) { data_item *l_oItem = *m_oMediator + id; int j = 0; switch (l_oItem->m_iDataType) { // text image table diagram case VIEW_DIAG: j++; case VIEW_TABLE: j++; case VIEW_IMG: j++; case VIEW_TEXT: j++; default: setCurrentIndex(j); //qDebug()<<"index is"< #include "con.h" class QLabel; class data_view : public QStackedWidget { Q_OBJECT public: data_view(QWidget *i_oParent, sem_mediator *i_oControl); sem_mediator *m_oMediator; QLabel *m_oLabel; public slots: void notify_select(const QList& unsel, const QList& sel); void notify_datatype(int id); }; #endif semantik-0.9.5/src/doc_dialog.cpp000664 000000 000000 00000004117 12732552614 016711 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "doc_dialog.h" doc_dialog::doc_dialog(QWidget *i_oParent): QDialog(i_oParent) { QGridLayout *l_oGridLayout = new QGridLayout(this); QLabel *l_sLabel; l_sLabel = new QLabel(this); l_sLabel->setText(trUtf8("First Name")); l_oGridLayout->addWidget(l_sLabel, 0, 0, 1, 1); l_sLabel = new QLabel(this); l_sLabel->setText(trUtf8("Name")); l_oGridLayout->addWidget(l_sLabel, 1, 0, 1, 1); l_sLabel = new QLabel(this); l_sLabel->setText(trUtf8("Organization")); l_oGridLayout->addWidget(l_sLabel, 2, 0, 1, 1); l_sLabel = new QLabel(this); l_sLabel->setText(trUtf8("Email")); l_oGridLayout->addWidget(l_sLabel, 3, 0, 1, 1); m_oFirstNameEdit = new QLineEdit(this); l_oGridLayout->addWidget(m_oFirstNameEdit, 0, 1, 1, 1); m_oNameEdit = new QLineEdit(this); l_oGridLayout->addWidget(m_oNameEdit, 1, 1, 1, 1); m_oOrganizationEdit = new QLineEdit(this); l_oGridLayout->addWidget(m_oOrganizationEdit, 2, 1, 1, 1); m_oEmailEdit = new QLineEdit(this); l_oGridLayout->addWidget(m_oEmailEdit, 3, 1, 1, 1); QSpacerItem *spacerItem = new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding); l_oGridLayout->addItem(spacerItem, 4, 1, 1, 1); QDialogButtonBox *l_oButtonBox = new QDialogButtonBox(this); l_oButtonBox->setOrientation(Qt::Horizontal); l_oButtonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok); l_oGridLayout->addWidget(l_oButtonBox, 5, 0, 1, 2); connect(l_oButtonBox, SIGNAL(accepted()), this, SLOT(accept())); connect(l_oButtonBox, SIGNAL(rejected()), this, SLOT(reject())); QSize size(321, 120); size = size.expandedTo(minimumSizeHint()); resize(size); } #include "doc_dialog.moc" semantik-0.9.5/src/doc_dialog.h000664 000000 000000 00000000632 12732552614 016354 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef DOC_DIALOG_H #define DOC_DIALOG_H #include #include class QLineEdit; class QTextEdit; class QTreeWidgetItem; class doc_dialog : public QDialog { Q_OBJECT public: doc_dialog(QWidget *i_oParent); QLineEdit *m_oFirstNameEdit; QLineEdit *m_oNameEdit; QLineEdit *m_oOrganizationEdit; QLineEdit *m_oEmailEdit; QString m_sCurrent; }; #endif semantik-0.9.5/src/export_map_dialog.cpp000664 000000 000000 00000005231 12732552614 020320 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "export_map_dialog.h" export_map_dialog::export_map_dialog(QWidget *i_oParent): KDialog(i_oParent) { setButtons(KDialog::Ok | KDialog::Cancel); QWidget *widget = new QWidget(this); setCaption(trUtf8("Export the map")); setButtons(KDialog::Ok | KDialog::Cancel); QGridLayout * gridLayout = new QGridLayout(widget); QLabel *label = new QLabel(widget); label->setText(trUtf8("File to write")); gridLayout->addWidget(label, 0, 0); kurlrequester = new KUrlRequester(widget); gridLayout->addWidget(kurlrequester, 0, 1, 1, 1); m_oWidthC = new QRadioButton(trUtf8("Width"), widget); gridLayout->addWidget(m_oWidthC, 1, 0, 1, 1); m_oWidth = new QSpinBox(widget); m_oWidth->setMinimum(16); m_oWidth->setMaximum(20000); gridLayout->addWidget(m_oWidth, 1, 1, 1, 1); m_oHeightC = new QRadioButton(trUtf8("Height"), widget); gridLayout->addWidget(m_oHeightC, 2, 0, 1, 1); m_oHeight = new QSpinBox(widget); m_oHeight->setMinimum(16); m_oHeight->setMaximum(20000); m_oHeight->setEnabled(false); gridLayout->addWidget(m_oHeight, 2, 1, 1, 1); connect(m_oHeightC, SIGNAL(clicked(bool)), this, SLOT(radio(bool))); connect(m_oWidthC, SIGNAL(clicked(bool)), this, SLOT(radio(bool))); connect(m_oWidth, SIGNAL(valueChanged(int)), this, SLOT(widthChanged(int))); connect(m_oHeight, SIGNAL(valueChanged(int)), this, SLOT(heightChanged(int))); setMainWidget(widget); QSize size(600, 100); resize(size.expandedTo(minimumSizeHint())); kurlrequester->setFocus(); } void export_map_dialog::slotButtonClicked(int button) { if (button == KDialog::Ok) { accept(); } else { KDialog::slotButtonClicked(button); } } void export_map_dialog::radio(bool) { if (m_oHeightC->isChecked()) { m_oHeight->setEnabled(true); m_oWidth->setEnabled(false); } else { m_oWidth->setEnabled(true); m_oHeight->setEnabled(false); } } void export_map_dialog::widthChanged(int v) { if (m_oHeightC->isChecked()) return; m_oHeight->setValue((v * m_iBaseHeight) / m_iBaseWidth); } void export_map_dialog::heightChanged(int v) { if (m_oWidthC->isChecked()) return; m_oWidth->setValue((v * m_iBaseWidth) / m_iBaseHeight); } #include "export_map_dialog.moc" semantik-0.9.5/src/export_map_dialog.h000664 000000 000000 00000001102 12732552614 017756 0ustar00rootroot000000 000000 // Thomas Nagy 2012 GPLV3 #ifndef EXPORT_MAP_DIALOG_H #define EXPORT_MAP_DIALOG_H #include class QSpinBox; class QRadioButton; class KUrlRequester; class export_map_dialog : public KDialog { Q_OBJECT public: export_map_dialog(QWidget *i_oParent); KUrlRequester *kurlrequester; QRadioButton *m_oWidthC; QSpinBox *m_oWidth; QRadioButton *m_oHeightC; QSpinBox *m_oHeight; int m_iBaseWidth; int m_iBaseHeight; public slots: void slotButtonClicked(int button); void radio(bool); void widthChanged(int); void heightChanged(int); }; #endif semantik-0.9.5/src/fig/000775 000000 000000 00000000000 12732552614 014663 5ustar00rootroot000000 000000 semantik-0.9.5/src/fig/CON.h000664 000000 000000 00000002332 12732552614 015453 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef CON_h #define CON_h #include #include "data_item.h" #include "box_chain.h" #define MUL 64 #define GRADVAL 110 #define JUST 1 class connectable { public: connectable() { m_oBox = NULL; }; virtual ~connectable() {}; int m_iId; virtual QRectF rect() const { return QRectF(); } virtual void update_data() {}; virtual void update_size() {}; virtual int choose_position(const QPointF&p, int id=-1) { Q_ASSERT(false); return 0; }; virtual QPoint get_point(int position) { return QPoint(0, 0); }; data_box *m_oBox; box_chain *m_oChain; virtual data_link::Direction pos_heuristic(const QPoint & i_oP, int i_iDirection) { switch (i_iDirection & data_link::COORD) { case data_link::NORTH: return (i_oP.y() > 0) ? data_link::NORTH : data_link::SOUTH; break; case data_link::WEST: return (i_oP.x() < 0) ? data_link::EAST : data_link::WEST; break; case data_link::SOUTH: return (i_oP.y() < rect().height()) ? data_link::SOUTH : data_link::NORTH; break; case data_link::EAST: return (i_oP.x() > rect().width()) ? data_link::WEST : data_link::EAST; break; default: break; } return data_link::SOUTH; }; }; #endif semantik-0.9.5/src/fig/box_actor.cpp000664 000000 000000 00000003466 12732552614 017360 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include "box_actor.h" #include "data_item.h" #include "res:zable.h" #include "box_view.h" #include "box_link.h" #include "sem_mediator.h" #include "mem_box.h" #include #define PAD 2 #define MIN_FORK_SIZE 30 box_actor::box_actor(box_view* view, int id) : box_item(view, id) { QFont font = doc.defaultFont(); font.setPointSize(font.pointSize() - 2); doc.setDefaultFont(font); } void box_actor::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->save(); QRectF l_oRect = boundingRect().adjusted(PAD, PAD, -PAD, -PAD); QPen l_oPen = QPen(Qt::SolidLine); l_oPen.setColor(Qt::black); l_oPen.setCosmetic(false); l_oPen.setWidth(1); painter->setPen(l_oPen); qreal xtop = l_oRect.x(); qreal ytop = l_oRect.y(); qreal xcoord = xtop + l_oRect.width() / 2.0; qreal ycoord = l_oRect.height() / 5.; painter->drawLine(QLineF(xcoord, ytop + 2 * ycoord, xcoord, ytop + 4 * ycoord)); painter->drawLine(QLineF(xtop, ytop + 3 * ycoord, xtop + l_oRect.width(), ytop + 3 * ycoord)); painter->drawLine(QLineF(xtop, ytop + l_oRect.height(), xcoord, ytop + 4 * ycoord)); painter->drawLine(QLineF(xtop + l_oRect.width(), ytop + l_oRect.height(), xcoord, ytop + 4 * ycoord)); double cir = 4 * l_oRect.width() / 10.; if (cir > ycoord) { cir = ycoord; } painter->drawEllipse(QRectF(xcoord - cir, ytop + 2 * ycoord - 2 * cir, 2 * cir, 2 * cir)); if (isSelected()) { painter->setBrush(QColor("#FFFF00")); QRectF l_oR2(m_iWW - 8, m_iHH - 8, 6, 6); painter->drawRect(l_oR2); } painter->restore(); } semantik-0.9.5/src/fig/box_actor.h000664 000000 000000 00000000654 12732552614 017021 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef BOX_ACTOR_H #define BOX_ACTOR_H #include #include #include "res:zable.h" #include "ed:table.h" #include "box_item.h" #include "CON.h" #include "con.h" #define OFF 3 class box_actor : public box_item { public: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); box_actor(box_view*, int i_iId); }; #endif // BOX_ACTOR_H semantik-0.9.5/src/fig/box_chain.cpp000664 000000 000000 00000001245 12732552614 017323 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include "CON.h" #include "box_chain.h" #include "box_view.h" #include "data_item.h" #include #define PAD 1 box_chain::box_chain(box_view* i_oParent) : QGraphicsRectItem() { setVisible(false); setRect(0, 0, 10, 10); } void box_chain::paint(QPainter *i_oPainter, const QStyleOptionGraphicsItem *option, QWidget * i_oW) { QPen l_oPen(Qt::SolidLine); l_oPen.setColor(Qt::black); l_oPen.setWidth(1); i_oPainter->setPen(l_oPen); i_oPainter->drawLine(QPoint(PAD, 5), QPoint(10-PAD, 5)); i_oPainter->drawLine(QPoint(5, PAD), QPoint(5, 10-PAD)); } semantik-0.9.5/src/fig/box_chain.h000664 000000 000000 00000000714 12732552614 016770 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef BOX_CHAIN_H #define BOX_CHAIN_H #include #include #include #include #include #include "con.h" class box_view; class box_item; class data_link; class box_control_point; class box_chain : public QGraphicsRectItem { public: box_chain(box_view*); void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); }; #endif // BOX_CHAIN_H semantik-0.9.5/src/fig/box_class.cpp000664 000000 000000 00000030516 12732552614 017351 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include #include "box_class.h" #include "data_item.h" #include "res:zable.h" #include "box_view.h" #include "box_link.h" #include "sem_mediator.h" #include "mem_box.h" #include "box_class_properties.h" #include #define PAD 2 #define MIN_FORK_SIZE 30 //#define DEBUG box_class::box_class(box_view* view, int id) : box_item(view, id) { setZValue(80); update_size(); } void box_class::force_size() { QSizeF l_o = size(); setRect(0, 0, l_o.width(), l_o.height()); m_iWW = m_oBox->m_iWW = l_o.width(); m_iHH = m_oBox->m_iHH = l_o.height(); } void box_class::paint(QPainter *i_oPainter, const QStyleOptionGraphicsItem *option, QWidget *widget) { i_oPainter->save(); QRectF l_oRect = boundingRect().adjusted(1, 1, -1, -1); QPen l_oPen; l_oPen.setCosmetic(false); l_oPen.setWidth(1); if (isSelected()) l_oPen.setStyle(Qt::DotLine); else l_oPen.setStyle(Qt::SolidLine); i_oPainter->setPen(l_oPen); QColor bc(m_oBox->color); i_oPainter->setBrush(bc); i_oPainter->drawRect(l_oRect); l_oPen.setStyle(Qt::SolidLine); QRectF l_oInnerRect = l_oRect.adjusted(1 + PAD, 1 + PAD, -1 - PAD, -1 - PAD); #ifdef DEBUG i_oPainter->save(); QColor bic("#00ffff"); i_oPainter->setBrush(bic); i_oPainter->drawRect(l_oInnerRect); i_oPainter->restore(); #endif qreal l_fHpos = 0; if (!m_oBox->m_sStereotype.isEmpty()) { QFont l_oFont(scene()->font()); QString l_sText = QChar(0xAB) + m_oBox->m_sStereotype + QChar(0xBB); i_oPainter->setFont(l_oFont); QFontMetricsF l_oFm(l_oFont); QRectF l_oR = l_oFm.boundingRect(l_sText); l_oR.setWidth(l_oInnerRect.width()); l_oR.moveTo(l_oInnerRect.topLeft() + QPointF(0, l_fHpos)); l_oR.adjust(-1, 0, 1, 0); #ifdef DEBUG i_oPainter->save(); QColor bc("#0000ff"); i_oPainter->setBrush(bc); i_oPainter->drawRect(l_oR); i_oPainter->restore(); #endif i_oPainter->drawText(l_oR, Qt::AlignCenter | Qt::TextSingleLine | Qt::AlignVCenter, l_sText); l_fHpos += l_oR.height(); } { QFont l_oBoldFont(scene()->font()); l_oBoldFont.setBold(true); l_oBoldFont.setItalic(m_oBox->m_bAbstract); l_oBoldFont.setUnderline(m_oBox->m_bStatic); i_oPainter->setFont(l_oBoldFont); QFontMetricsF l_oFm(l_oBoldFont); QString l_sText = m_oBox->m_sText; if (l_sText.isEmpty()) { l_sText = notr(" "); } QRectF l_oR = l_oFm.boundingRect(l_sText); l_oR.setWidth(l_oInnerRect.width()); l_oR.moveTo(l_oInnerRect.topLeft() + QPointF(0, l_fHpos)); l_oR.adjust(-1, 0, 1, 0); #ifdef DEBUG i_oPainter->save(); QColor bc("#ffff00"); i_oPainter->setBrush(bc); i_oPainter->drawRect(l_oR); i_oPainter->restore(); #endif i_oPainter->drawText(l_oR, Qt::AlignCenter | Qt::TextSingleLine | Qt::AlignVCenter, l_sText); l_fHpos += l_oR.height(); } QFont l_oNormalFont(scene()->font()); QFontMetricsF l_oNormalFm(l_oNormalFont); qreal l_iHVisibility = minVisibility(l_oNormalFm); QFont l_oItalicFont(scene()->font()); l_oItalicFont.setItalic(true); QFontMetricsF l_oItalicFm(l_oItalicFont); QFont l_oUnderlineFont(scene()->font()); l_oUnderlineFont.setUnderline(true); QFontMetricsF l_oUnderlineFm(l_oUnderlineFont); if (m_oBox->m_oAttributes.size() > 0) { l_fHpos += PAD; i_oPainter->drawLine(l_oRect.topLeft() + QPointF(0, l_fHpos +1 + PAD), l_oRect.topRight() + QPointF(0, l_fHpos + 1 + PAD)); l_fHpos += 1 + PAD; } foreach (data_box_attribute l_o, m_oBox->m_oAttributes) { QRectF l_oR; if (l_o.m_bStatic) { l_oR = l_oUnderlineFm.boundingRect(l_o.m_sText); i_oPainter->setFont(l_oUnderlineFont); } else { l_oR = l_oNormalFm.boundingRect(l_o.m_sText); i_oPainter->setFont(l_oNormalFont); } l_oR.setWidth(l_oInnerRect.width()); qreal l_fOff = PAD + l_iHVisibility; l_oR.setWidth(l_oR.width() - l_fOff); l_oR.moveTo(l_oInnerRect.topLeft() + QPointF(l_fOff, l_fHpos)); l_oR.adjust(-1, 0, 1, 0); #ifdef DEBUG i_oPainter->save(); QColor bc("#ff0000"); i_oPainter->setBrush(bc); i_oPainter->drawRect(l_oR); i_oPainter->restore(); #endif i_oPainter->drawText(l_oR, Qt::AlignLeft | Qt::TextSingleLine | Qt::AlignTop, l_o.m_sText); QString l_sVis; if (l_o.m_oVisibility == visibility::PUBLIC) { l_sVis = "+"; } else if (l_o.m_oVisibility == visibility::PROTECTED) { l_sVis = "#"; } else if (l_o.m_oVisibility == visibility::PRIVATE) { l_sVis = QChar(0x2212); } else if (l_o.m_oVisibility == visibility::PACKAGE) { l_sVis = "~"; } else if (l_o.m_oVisibility == visibility::DERIVED) { l_sVis = "/"; } else { Q_ASSERT(QString("Invalid visibility %1").arg(l_o.m_oVisibility) != "0"); } l_oR.translate(QPointF(- l_fOff, 0)); l_oR.setWidth(l_iHVisibility + 2); i_oPainter->setFont(l_oNormalFont); #ifdef DEBUG i_oPainter->save(); QColor bic("#00ff00"); i_oPainter->setBrush(bic); i_oPainter->drawRect(l_oR); i_oPainter->restore(); #endif i_oPainter->drawText(l_oR, Qt::AlignCenter | Qt::TextSingleLine | Qt::AlignTop, l_sVis); l_fHpos += l_oR.height(); } if (m_oBox->m_oMethods.size() > 0) { l_fHpos += PAD; i_oPainter->drawLine(l_oRect.topLeft() + QPointF(0, l_fHpos + 1 + PAD), l_oRect.topRight() + QPointF(0, l_fHpos + 1 + PAD)); l_fHpos += 1 + PAD; } foreach (data_box_method l_o, m_oBox->m_oMethods) { QRectF l_oR; if (l_o.m_bAbstract) { l_oR = l_oItalicFm.boundingRect(l_o.m_sText); i_oPainter->setFont(l_oItalicFont); } else if (l_o.m_bStatic) { l_oR = l_oUnderlineFm.boundingRect(l_o.m_sText); i_oPainter->setFont(l_oUnderlineFont); } else { l_oR = l_oNormalFm.boundingRect(l_o.m_sText); i_oPainter->setFont(l_oNormalFont); } l_oR.setWidth(l_oInnerRect.width()); qreal l_fOff = PAD + l_iHVisibility; l_oR.setWidth(l_oR.width() - l_fOff); l_oR.moveTo(l_oInnerRect.topLeft() + QPointF(l_fOff, l_fHpos)); l_oR.adjust(-1, 0, 1, 0); #ifdef DEBUG i_oPainter->save(); QColor bc("#ff0000"); i_oPainter->setBrush(bc); i_oPainter->drawRect(l_oR); i_oPainter->restore(); #endif i_oPainter->drawText(l_oR, Qt::AlignLeft | Qt::TextSingleLine | Qt::AlignTop, l_o.m_sText); QString l_sVis; if (l_o.m_oVisibility == visibility::PUBLIC) { l_sVis = "+"; } else if (l_o.m_oVisibility == visibility::PROTECTED) { l_sVis = "#"; } else if (l_o.m_oVisibility == visibility::PRIVATE) { l_sVis = QChar(0x2212); } else if (l_o.m_oVisibility == visibility::PACKAGE) { l_sVis = "~"; } else if (l_o.m_oVisibility == visibility::DERIVED) { l_sVis = "/"; } else { Q_ASSERT(QString("Invalid visibility %1").arg(l_o.m_oVisibility) != "0"); } l_oR.translate(QPointF(- l_fOff, 0)); l_oR.setWidth(l_iHVisibility + 2); i_oPainter->setFont(l_oNormalFont); #ifdef DEBUG i_oPainter->save(); QColor bic("#00ff00"); i_oPainter->setBrush(bic); i_oPainter->drawRect(l_oR); i_oPainter->restore(); #endif i_oPainter->drawText(l_oR, Qt::AlignCenter | Qt::TextSingleLine | Qt::AlignTop, l_sVis); l_fHpos += l_oR.height(); } if (isSelected()) { l_oPen.setStyle(Qt::SolidLine); i_oPainter->setPen(l_oPen); i_oPainter->setBrush(QColor("#FFFF00")); QRectF l_oR2(m_iWW - 8, m_iHH - 8, 6, 6); i_oPainter->drawRect(l_oR2); } i_oPainter->restore(); } qreal box_class::minVisibility(const QFontMetricsF i_oFm) { qreal l_iHVisibility = 0; qreal l_fW; l_fW = i_oFm.width("+"); if (l_fW > l_iHVisibility) l_iHVisibility = l_fW; l_fW = i_oFm.width(QChar(0x2212)); if (l_fW > l_iHVisibility) l_iHVisibility = l_fW; l_fW = i_oFm.width("#"); if (l_fW > l_iHVisibility) l_iHVisibility = l_fW; l_fW = i_oFm.width("~"); if (l_fW > l_iHVisibility) l_iHVisibility = l_fW; l_fW = i_oFm.width("/"); if (l_fW > l_iHVisibility) l_iHVisibility = l_fW; return l_iHVisibility; } QSizeF box_class::size() { QSizeF l_oRet; QFont l_oNormalFont(scene()->font()); QFontMetricsF l_oNormalFm(l_oNormalFont); qreal l_iHVisibility = minVisibility(l_oNormalFm); QFont l_oItalicFont(scene()->font()); l_oItalicFont.setItalic(true); QFontMetricsF l_oItalicFm(l_oItalicFont); QFont l_oUnderlineFont(scene()->font()); l_oUnderlineFont.setUnderline(true); QFontMetricsF l_oUnderlineFm(l_oUnderlineFont); QFont l_oUnderlineItalicFont(l_oUnderlineFont); l_oUnderlineFont.setItalic(true); QFontMetricsF l_oUnderlineItalicFm(l_oUnderlineFont); qreal l_iWW = 0, l_iHH = 2 * PAD; if (m_oBox->m_oMethods.size() > 0) { l_iHH += 2 * PAD + 1; // 1 for the line } foreach (data_box_method l_o, m_oBox->m_oMethods) { QRectF l_oR; // italic underline? if (l_o.m_bAbstract) { if (l_o.m_bStatic) { l_oR = l_oUnderlineItalicFm.boundingRect(l_o.m_sText); } else { l_oR = l_oItalicFm.boundingRect(l_o.m_sText); } } else if (l_o.m_bStatic) { l_oR = l_oUnderlineFm.boundingRect(l_o.m_sText); } else { l_oR = l_oNormalFm.boundingRect(l_o.m_sText); } l_iWW = qMax(l_oR.width(), l_iWW); l_iHH += l_oR.height(); } if (m_oBox->m_oAttributes.size() > 0) { l_iHH += 2 * PAD + 1; // 1 for the line } foreach (data_box_attribute l_o, m_oBox->m_oAttributes) { QRectF l_oR; if (l_o.m_bStatic) { l_oR = l_oUnderlineFm.boundingRect(l_o.m_sText); } else { l_oR = l_oNormalFm.boundingRect(l_o.m_sText); } l_iWW = qMax(l_oR.width(), l_iWW); l_iHH += l_oR.height(); } l_iWW += PAD + l_iHVisibility; if (!m_oBox->m_sStereotype.isEmpty()) { QString l_sText = QChar(0xAB) + m_oBox->m_sStereotype + QChar(0xBB); QFontMetricsF l_oFm(l_oNormalFont); QRectF l_oR = l_oFm.boundingRect(l_sText); l_iWW = qMax(l_oR.width(), l_iWW); l_iHH += l_oR.height(); } l_oNormalFont.setBold(true); if (m_oBox->m_bAbstract) { l_oNormalFont.setItalic(true); } if (m_oBox->m_bStatic) { l_oNormalFont.setUnderline(true); } { QFontMetricsF l_oFm(l_oNormalFont); QString l_sText = m_oBox->m_sText; if (l_sText.isEmpty()) { l_sText = notr(" "); } QRectF l_oR = l_oFm.boundingRect(l_sText); l_iWW = qMax(l_oR.width(), l_iWW); l_iHH += l_oR.height(); } // +2 for the border width int l_iWWN = (int) (l_iWW + 2 + 2 * PAD); int l_iHHN = (int) (l_iHH + 2 * PAD); //int RG = GRID/2; //if (l_iWWN % RG) l_iWWN = RG * (1 + l_iWWN / RG); //if (l_iHHN % RG) l_iHHN = RG * (1 + l_iHHN / RG); return QSizeF(l_iWWN, l_iHHN); // adjusted } void box_class::properties() { box_class_properties props(m_oView, this); QStringList l_oS; if (props.m_oClass->m_oBox->m_bStatic) { l_oS<m_oBox->m_bAbstract) { l_oS<m_oBox->m_sText<m_oBox->m_sStereotype.isEmpty()) { l_oS<m_oBox->m_sStereotype<m_oAttributes) { if (l_o.m_oVisibility == visibility::PUBLIC) { l_oS<m_oMethods) { if (l_o.m_oVisibility == visibility::PUBLIC) { l_oS<setText(l_oS.join(notr(""))); props.exec(); } semantik-0.9.5/src/fig/box_class.h000664 000000 000000 00000001033 12732552614 017006 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef BOX_CLASS_H #define BOX_CLASS_H #include #include #include "res:zable.h" #include "ed:table.h" #include "box_item.h" #include "CON.h" #include "con.h" #define OFF 3 class box_class : public box_item { public: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); box_class(box_view*, int i_iId); QSizeF size(); qreal minVisibility(const QFontMetricsF i_oFm); void force_size(); void properties(); }; #endif // BOX_CLASS_H semantik-0.9.5/src/fig/box_class_properties.cpp000664 000000 000000 00000024060 12732552614 021622 0ustar00rootroot000000 000000 // Thomas Nagy 2014-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "mem_box.h" #include "box_view.h" #include #include "box_class_properties.h" class_editor::class_editor(QWidget *i_oParent) : QTextEdit(i_oParent) { new class_highlighter(document()); //setStyleSheet("font-family: \"DejaVu Sans Mono\", \"Courier New\", Courier, monospace;"); QFont l_oFont = currentFont(); l_oFont.setStyleHint(QFont::Monospace); setFont(l_oFont); m_oCompleter = NULL; startup = true; } void class_editor::init_completer() { m_oCompleterAll = new QCompleter(this); m_oCompleterItem = new QCompleter(this); QTreeView *l_oTreeView = NULL; QStandardItemModel *l_oModelItem = new QStandardItemModel(this); fillloc(l_oModelItem); l_oTreeView = new QTreeView; m_oCompleterItem->setPopup(l_oTreeView); m_oCompleterItem->setModel(l_oModelItem); m_oCompleterItem->setWidget(this); m_oCompleterItem->setCompletionMode(QCompleter::PopupCompletion); m_oCompleterItem->setModelSorting(QCompleter::CaseInsensitivelySortedModel); m_oCompleterItem->setCaseSensitivity(Qt::CaseInsensitive); l_oTreeView->header()->hide(); l_oTreeView->header()->setStretchLastSection(false); l_oTreeView->header()->setResizeMode(0, QHeaderView::ResizeToContents); l_oTreeView->header()->setResizeMode(1, QHeaderView::Stretch); l_oTreeView->setRootIsDecorated(false); QObject::connect(m_oCompleterItem, SIGNAL(activated(const QString&)), this, SLOT(do_complete(const QString&))); QStandardItemModel *l_oModelAll = new QStandardItemModel(this); fillglo(l_oModelAll) l_oTreeView = new QTreeView; m_oCompleterAll->setPopup(l_oTreeView); m_oCompleterAll->setModel(l_oModelAll); m_oCompleterAll->setWidget(this); m_oCompleterAll->setCompletionMode(QCompleter::PopupCompletion); m_oCompleterAll->setModelSorting(QCompleter::CaseInsensitivelySortedModel); m_oCompleterAll->setCaseSensitivity(Qt::CaseInsensitive); l_oTreeView->header()->setStretchLastSection(false); l_oTreeView->header()->setResizeMode(0, QHeaderView::ResizeToContents); l_oTreeView->header()->setResizeMode(1, QHeaderView::Stretch); l_oTreeView->setRootIsDecorated(false); l_oTreeView->header()->hide(); QObject::connect(m_oCompleterAll, SIGNAL(activated(const QString&)), this, SLOT(do_complete(const QString&))); // initialize m_oCompleter = m_oCompleterAll; m_oCompleteAction = new QAction(trUtf8("Code complete"), this); m_oCompleteAction->setShortcut(trUtf8("Ctrl+space")); connect(m_oCompleteAction, SIGNAL(triggered()), this, SLOT(try_complete())); addAction(m_oCompleteAction); #if 0 QPalette l_oPalette = palette(); l_oPalette.setBrush(QPalette::Inactive, QPalette::Base, QColor(230, 230, 230)); l_oPalette.setBrush(QPalette::Disabled, QPalette::Base, QColor(230, 230, 230)); setPalette(l_oPalette); #endif } class_highlighter::class_highlighter(QTextDocument *p): QSyntaxHighlighter(p) { class_highlighter_rule l_oRule; QTextCharFormat l_oSingle; l_oSingle.setForeground(Qt::darkGreen); l_oRule.m_oPattern = QRegExp("^((static|abstract|static\\s+abstract|abstract\\s+static)\\s+)*class\\s+"); l_oSingle.setFontWeight(QFont::Bold); l_oRule.m_oFormat = l_oSingle; m_oRules.append(l_oRule); QTextCharFormat l_oKeyword; l_oKeyword.setForeground(Qt::darkGreen); l_oKeyword.setFontWeight(QFont::Bold); l_oRule.m_oPattern = QRegExp("^(public|private|protected|package|derived|stereotype)(\\s+(static|abstract|static\\s+abstract|abstract\\s+static)*)"); l_oRule.m_oFormat = l_oKeyword; m_oRules.append(l_oRule); } void class_highlighter::highlightBlock(const QString &i_sText) { foreach (class_highlighter_rule l_oRule, m_oRules) { QRegExp l_oExp(l_oRule.m_oPattern); int i = i_sText.indexOf(l_oExp); while (i >= 0) { int l_iLen = l_oExp.matchedLength(); if (i_sText[i+l_iLen-1]==QChar('=')) l_iLen--; setFormat(i, l_iLen, l_oRule.m_oFormat); i = i_sText.indexOf(l_oExp, i + l_iLen); } } } void class_editor::do_complete(const QString& i_s) { QTextCursor l_oCursor = textCursor(); int i_i = i_s.length() - m_oCompleter->completionPrefix().length(); if (m_oCompleter->completionPrefix().length()>0) { l_oCursor.movePosition(QTextCursor::Left); l_oCursor.movePosition(QTextCursor::EndOfWord); } else { l_oCursor.movePosition(QTextCursor::StartOfWord); } l_oCursor.insertText(i_s.right(i_i)); setTextCursor(l_oCursor); } void class_editor::keyPressEvent(QKeyEvent *i_oEv) { // FIXME QTextEdit::keyPressEvent(i_oEv); return; if (m_oCompleter->popup()->isVisible()) { switch (i_oEv->key()) { case Qt::Key_Enter: case Qt::Key_Return: case Qt::Key_Escape: case Qt::Key_Tab: case Qt::Key_Backtab: i_oEv->ignore(); return; // let the completer do default behavior default: break; } } QTextEdit::keyPressEvent(i_oEv); bool l_oCtrlOrShift = i_oEv->modifiers() & (Qt::ControlModifier | Qt::ShiftModifier); if (l_oCtrlOrShift && i_oEv->text().isEmpty()) { return; } static QString eow("~!@#$%^&*()_+{}|:\"<>?,./;'[]\\-="); // end of word //bool hasModifier = (e->modifiers() != Qt::NoModifier) && !l_oCtrlOrShift; QTextCursor l_oCursor = textCursor(); l_oCursor.select(QTextCursor::WordUnderCursor); QString l_sPrefix = l_oCursor.selectedText(); if ( l_sPrefix.length() < 1 or i_oEv->text().isEmpty() or eow.contains(i_oEv->text().right(1)) or (i_oEv->modifiers() != Qt::NoModifier && !l_oCtrlOrShift) ) { m_oCompleter->popup()->hide(); return; } try_complete(); } void class_editor::try_complete() { QTextCursor l_oCursor = textCursor(); l_oCursor.select(QTextCursor::WordUnderCursor); QString l_sPrefix = l_oCursor.selectedText(); int l_iSave = l_oCursor.position(); l_oCursor.movePosition(QTextCursor::StartOfWord); int l_iWord = l_oCursor.position(); l_oCursor.movePosition(QTextCursor::StartOfLine); bool l_b = l_oCursor.position() == l_iWord; l_oCursor.setPosition(l_iSave); if (!l_b) return; if (l_sPrefix != m_oCompleter->completionPrefix()) { m_oCompleter->setCompletionPrefix(l_sPrefix); m_oCompleter->popup()->setCurrentIndex(m_oCompleter->completionModel()->index(0, 0)); } QRect l_oRect = cursorRect(); l_oRect.setWidth(width()); //m_oCompleter->popup()->sizeHintForColumn(0) + // m_oCompleter->popup()->sizeHintForColumn(1) + // m_oCompleter->popup()->verticalScrollBar()->sizeHint().width() + // 20 QTreeView *l_oTreeView = (QTreeView*) m_oCompleter->popup(); l_oTreeView->resizeColumnToContents(0); l_oTreeView->resizeColumnToContents(1); m_oCompleter->complete(l_oRect); } box_class_properties::box_class_properties(QWidget *i_oParent, box_class *i_oClass): KDialog(i_oParent), m_oClass(i_oClass) { QWidget *widget = new QWidget(this); setCaption(trUtf8("Class properties")); setButtons(KDialog::Ok | KDialog::Apply | KDialog::Cancel); enableButtonApply(false); m_oClass = i_oClass; QGridLayout *l_oGridLayout = new QGridLayout(widget); m_oClassDefinition = new class_editor(widget); l_oGridLayout->addWidget(m_oClassDefinition, 0, 0); setMainWidget(widget); QSize size(700, 320); resize(size.expandedTo(minimumSizeHint())); connect(m_oClassDefinition, SIGNAL(textChanged()), this, SLOT(enable_apply())); connect(this, SIGNAL(applyClicked()), this, SLOT(apply())); connect(this, SIGNAL(okClicked()), this, SLOT(apply())); m_oClassDefinition->setFocus(); } void box_class_properties::enable_apply(int) { enableButtonApply(true); } void box_class_properties::enable_apply() { enableButtonApply(true); } void box_class_properties::apply() { if (!isButtonEnabled(KDialog::Apply)) { return; } QStringList l_oTmp = m_oClassDefinition->toPlainText().split(notr("\n")); if (l_oTmp.size() < 1) { KMessageBox::sorry(this, trUtf8("No class name given"), trUtf8("Missing class name")); return; } QRegExp rx("(static|abstract)?\\s*(static|abstract)?\\s*class\\s+(\\w.*)"); if (rx.indexIn(l_oTmp[0]) != -1) { mem_class *mem = new mem_class(m_oClass->m_oView->m_oMediator, m_oClass->m_oView->m_iId); mem->init(m_oClass->m_oBox); mem->m_oNewBox.m_sText = rx.cap(3); mem->m_oNewBox.m_bStatic = (notr("static") == rx.cap(1) || notr("static") == rx.cap(2)); mem->m_oNewBox.m_bAbstract = (notr("abstract") == rx.cap(1) || notr("abstract") == rx.cap(2)); mem->m_oNewBox.m_oMethods.clear(); mem->m_oNewBox.m_oAttributes.clear(); mem->m_oNewBox.m_sStereotype = QString::null; QRegExp rm("^(public|private|protected|package|derived)\\s*(static|abstract)?\\s*(static|abstract)?\\s*(\\w.*)"); QRegExp rs("^stereotype\\s*(\\w.*)"); for (int i=1; i < l_oTmp.size() - 1; ++i) { QString l_s = l_oTmp[i]; if (rm.indexIn(l_s) >= 0) { QString l_sData = rm.cap(4); bool l_bStatic = (notr("static") == rm.cap(3) || notr("static") == rm.cap(2)); bool l_bAbstract = (notr("abstract") == rm.cap(3) || notr("abstract") == rm.cap(2)); if (l_sData.contains(notr("("))) { data_box_method m; m.m_bStatic = l_bStatic; m.m_bAbstract = l_bAbstract; m.m_sText = rm.cap(4); m.m_oVisibility = visibility::toVisibility(rm.cap(1)); mem->m_oNewBox.m_oMethods.push_back(m); } else { data_box_attribute a; a.m_bStatic = l_bStatic; a.m_sText = rm.cap(4); a.m_oVisibility = visibility::toVisibility(rm.cap(1)); mem->m_oNewBox.m_oAttributes.push_back(a); } } else if (rs.indexIn(l_s) >= 0) { mem->m_oNewBox.m_sStereotype = rs.cap(1); } } // must ask the ui to know the size :/ *m_oClass->m_oBox = mem->m_oNewBox; m_oClass->force_size(); if (m_oClass->m_iWW > mem->m_oOldBox.m_iWW or m_oClass->m_iHH > mem->m_oOldBox.m_iHH) { mem->m_oNewBox.m_iWW = m_oClass->m_iWW; mem->m_oNewBox.m_iHH = m_oClass->m_iHH; } mem->apply(); enableButtonApply(false); } else { qDebug()<<"no match for"< #include #include #include "box_class.h" class QCompleter; class class_highlighter_rule { public: QRegExp m_oPattern; QTextCharFormat m_oFormat; }; class class_highlighter: public QSyntaxHighlighter { public: class_highlighter(QTextDocument *i_oP=0); void highlightBlock(const QString &); QVector m_oRules; }; class class_editor : public QTextEdit { Q_OBJECT public: class_editor(QWidget *i_oParent); QCompleter *m_oCompleter; QCompleter *m_oCompleterItem; QCompleter *m_oCompleterAll; QAction *m_oCompleteAction; void keyPressEvent(QKeyEvent*); void init_completer(); bool startup; public slots: void do_complete(const QString &); void try_complete(); }; class box_class_properties : public KDialog { Q_OBJECT public: box_class_properties(QWidget*, box_class*); box_class *m_oClass; class_editor *m_oClassDefinition; public slots: void apply(); void enable_apply(int); void enable_apply(); }; #endif semantik-0.9.5/src/fig/box_component.cpp000664 000000 000000 00000004215 12732552614 020243 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include #include "box_component.h" #include "data_item.h" #include "res:zable.h" #include "box_view.h" #include "box_link.h" #include "sem_mediator.h" #include "mem_box.h" #define PAD 2 #define MIN_FORK_SIZE 30 box_component::box_component(box_view* view, int id) : box_item(view, id) { setZValue(95); } void box_component::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->save(); doc.setDefaultFont(scene()->font()); //painter->setFont(scene()->font()); QRectF l_oRect = boundingRect().adjusted(PAD, PAD, -PAD, -PAD); QColor bc(m_oBox->color); if (m_oView->m_bDisableGradient) { painter->setBrush(bc); } else { QLinearGradient linearGradient(0, 0, l_oRect.width(), 0); linearGradient.setColorAt(0.0, bc); linearGradient.setColorAt(1.0, bc.darker(GRADVAL)); painter->setBrush(linearGradient); } QPen l_oPen = QPen(Qt::SolidLine); l_oPen.setColor(Qt::black); l_oPen.setCosmetic(false); l_oPen.setWidth(1); if (isSelected()) { l_oPen.setStyle(Qt::DotLine); } painter->setPen(l_oPen); painter->drawRect(l_oRect); if (isSelected()) { l_oPen.setStyle(Qt::SolidLine); painter->setPen(l_oPen); painter->setBrush(QColor("#FFFF00")); QRectF l_oR2(m_iWW - 8, m_iHH - 8, 6, 6); painter->drawRect(l_oR2); } l_oPen.setStyle(Qt::SolidLine); painter->setPen(l_oPen); painter->setBrush(bc); QRectF l_o(m_iWW - 20, 6, 12, 14); painter->drawRect(l_o); QRectF l_o2(m_iWW - 24, 9, 8, 3); painter->drawRect(l_o2); QRectF l_o3(m_iWW - 24, 14, 8, 3); painter->drawRect(l_o3); painter->translate(OFF, OFF + 15); QAbstractTextDocumentLayout::PaintContext ctx; ctx.palette = QApplication::palette("QTextControl"); ctx.palette.setColor(QPalette::Text, Qt::black); // white on black kde themes doc.documentLayout()->draw(painter, ctx); painter->restore(); } semantik-0.9.5/src/fig/box_component.h000664 000000 000000 00000000701 12732552614 017704 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef BOX_COMPONENT_H #define BOX_COMPONENT_H #include #include #include "res:zable.h" #include "ed:table.h" #include "box_item.h" #include "CON.h" #include "con.h" #define OFF 3 class box_component : public box_item { public: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); box_component(box_view*, int i_iId); }; #endif // BOX_COMPONENT_H semantik-0.9.5/src/fig/box_control_point.cpp000664 000000 000000 00000016306 12732552614 021136 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include "box_control_point.h" #include "box_view.h" #include "box_control_point.h" #include "mem_box.h" #include "box_link.h" #include "data_item.h" #include "sem_mediator.h" #define PAD 1 #define CTRLSIZE 8 box_control_point::box_control_point(box_view* i_oParent) : QGraphicsRectItem(), m_oView(i_oParent) { setRect(-CTRLSIZE/2., -CTRLSIZE/2., CTRLSIZE, CTRLSIZE); m_bIsSegment = true; m_oLink = NULL; i_oParent->scene()->addItem(this); setCacheMode(QGraphicsItem::DeviceCoordinateCache); setZValue(110); m_bChanged = false; m_bForced = false; setFlags(ItemIsMovable | ItemSendsGeometryChanges); } void box_control_point::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->save(); QRectF l_oRect = boundingRect().adjusted(PAD, PAD, -PAD, -PAD); QPen l_oPen = QPen(Qt::SolidLine); l_oPen.setColor(Qt::black); l_oPen.setCosmetic(false); l_oPen.setWidth(1); painter->setPen(l_oPen); if (m_bIsSegment) { painter->setBrush(QColor("#FFFF00")); } else { if ( (m_oLink->m_oStartPoint == this && m_oLink->m_oInnerLink.m_iParent != NO_ITEM) || (m_oLink->m_oEndPoint == this && m_oLink->m_oInnerLink.m_iChild != NO_ITEM)) { painter->setBrush(QColor(Qt::green)); } else painter->setBrush(QColor(Qt::red)); } painter->drawRect(l_oRect); painter->restore(); } void box_control_point::mousePressEvent(QGraphicsSceneMouseEvent* e) { //qDebug()<<"FIXME mouse press event"; QGraphicsRectItem::mousePressEvent(e); } void box_control_point::mouseReleaseEvent(QGraphicsSceneMouseEvent* e) { if (! m_oView->m_oCurrent) { if (!m_oLink->m_oLink->equals(m_oLink->m_oInnerLink)) { mem_change_link_box* mem = new mem_change_link_box(m_oView->m_oMediator, m_oView->m_iId); mem->link = m_oLink->m_oLink; mem->prev.copy_from(*m_oLink->m_oLink); mem->next.copy_from(m_oLink->m_oInnerLink); mem->apply(); } } QGraphicsRectItem::mouseReleaseEvent(e); } QVariant box_control_point::itemChange(GraphicsItemChange i_oChange, const QVariant &i_oValue) { if (scene()) { if (i_oChange == ItemPositionChange) { // TODO make sure items do not mess each other positions (crashes...) QPointF l_o = i_oValue.toPointF(); QPoint np = QPoint(l_o.x(), l_o.y()); if (m_oView->m_oCurrent && this == m_oLink->m_oEndPoint) { connectable *start = m_oView->m_oItems.value(m_oView->m_oCurrent->m_oInnerLink.m_iParent); QRectF r = start->rect(); QPointF l_o1 = r.topLeft() - l_o + QPointF(r.width()/2, r.height()/2); double c_x = l_o1.x() * r.height(); double c_y = l_o1.y() * r.width(); int cand = 0; if (qAbs(c_x) > qAbs(c_y)) { cand = (c_x > 0) ? data_link::WEST : data_link::EAST; } else { cand = (c_y > 0) ? data_link::NORTH : data_link::SOUTH; } m_oView->m_oCurrent->m_oInnerLink.m_iParentPos = cand + MUL * 500; } if (m_bIsSegment) { if (m_bMoveX) { int dec = int_val2(np.x()); np.setX(dec); if (m_oLink->m_oLst.size() > m_iOffset + 1) { np.setY((m_oLink->m_oGood[m_iOffset + 1].y() + m_oLink->m_oGood[m_iOffset + 2].y()) / 2.); if (m_oLink->m_oGood[m_iOffset + 1].x() != dec) { m_oLink->m_oInnerLink.m_oOffsets[m_iOffset].setX(dec - m_oLink->m_oLst[m_iOffset + 1].x()); m_bChanged = true; } } } else { int dec = int_val2(np.y()); np.setY(dec); if (m_oLink->m_oLst.size() > m_iOffset + 1) { np.setX((m_oLink->m_oGood[m_iOffset + 1].x() + m_oLink->m_oGood[m_iOffset + 2].x()) / 2.); if (m_oLink->m_oGood[m_iOffset + 1].y() != dec) { m_oLink->m_oInnerLink.m_oOffsets[m_iOffset].setY(dec - m_oLink->m_oLst[m_iOffset + 1].y()); m_bChanged = true; } } } return np; } else if (!m_bForced) { connectable *l_oUnder = NULL; // TODO do something with the z-index foreach (QGraphicsItem *l_oI1, scene()->items(np)) { if ((l_oUnder = dynamic_cast(l_oI1))) { break; } } if (l_oUnder) { int l_iPosition = (int) l_oUnder->choose_position(l_o); if (l_oUnder) { if (m_oLink->m_oStartPoint == this) { if (l_iPosition == m_oLink->m_oInnerLink.m_iChildPos && m_oLink->m_oInnerLink.m_iChild == l_oUnder->m_iId) goto not_connected; } else if (m_oLink->m_oEndPoint == this) { if (l_iPosition == m_oLink->m_oInnerLink.m_iParentPos && m_oLink->m_oInnerLink.m_iParent == l_oUnder->m_iId) goto not_connected; } } np = l_oUnder->get_point(l_iPosition); if (m_oLink->m_oStartPoint == this) { m_oLink->m_oInnerLink.m_iParent = l_oUnder->m_iId; m_oLink->m_oInnerLink.m_iParentPos = l_iPosition; m_oLink->m_oInnerLink.m_oStartPoint = m_oRealPosition = np; } else if (m_oLink->m_oEndPoint == this) { m_oLink->m_oInnerLink.m_iChild = l_oUnder->m_iId; m_oLink->m_oInnerLink.m_iChildPos = l_iPosition; m_oLink->m_oInnerLink.m_oEndPoint = m_oRealPosition = np; } update(); return np; } not_connected: if (m_oLink->m_oStartPoint == this) { if (connectable* con = m_oView->m_oItems.value(m_oLink->m_oInnerLink.m_iChild)) { QPointF bot = con->rect().bottomLeft(); m_oLink->m_oInnerLink.m_iParentPos = con->pos_heuristic(np - QPoint(bot.x(), bot.y()), m_oLink->m_oInnerLink.m_iChildPos); } m_oLink->m_oInnerLink.m_iParent = NO_ITEM; m_oLink->m_oInnerLink.m_oStartPoint = m_oRealPosition = np; } else if (m_oLink->m_oEndPoint == this) { if (connectable* con = m_oView->m_oItems.value(m_oLink->m_oInnerLink.m_iParent)) { QPointF bot = con->rect().bottomLeft(); m_oLink->m_oInnerLink.m_iChildPos = con->pos_heuristic(np - QPoint(bot.x(), bot.y()), m_oLink->m_oInnerLink.m_iParentPos); } m_oLink->m_oInnerLink.m_iChild = NO_ITEM; m_oLink->m_oInnerLink.m_oEndPoint = m_oRealPosition = np; } update(); return np; } } else if (i_oChange == ItemPositionHasChanged) { if (m_bIsSegment && m_bChanged && m_oLink->m_oLst.size() > m_iOffset) { m_oLink->update_offset(pos(), m_iOffset); m_bChanged = false; } else if (!m_bIsSegment && !m_bForced) { m_oLink->update_pos(); } } else if (i_oChange == ItemSelectedHasChanged) { if (isSelected()) setZValue(105); else setZValue(104); } } return QGraphicsItem::itemChange(i_oChange, i_oValue); } void box_control_point::init_pos() { Q_ASSERT(m_oLink); int i = m_iOffset; QPointF p(m_oLink->m_oGood.at(i+1)); if (m_oLink->m_oGood.at(i+2).x() == p.x()) { p.setY((p.y() + m_oLink->m_oGood.at(i+2).y()) / 2); m_bMoveX = true; } else { p.setX((p.x() + m_oLink->m_oGood.at(i+2).x()) / 2); m_bMoveX = false; } setPos(p); } void box_control_point::force_position(const QPoint& i_oP) { m_bForced = true; if (m_oRealPosition != i_oP) { m_oRealPosition = i_oP; } setPos(i_oP); m_bForced = false; } semantik-0.9.5/src/fig/box_control_point.h000664 000000 000000 00000001511 12732552614 020573 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef BOX_CTRL_H #define BOX_CTRL_H #include #include #include "CON.h" #include "con.h" class box_view; class data_item; class data_box; class box_link; class box_control_point : public QGraphicsRectItem { public: box_control_point(box_view*); bool m_bIsSegment; bool m_bMoveX; int m_iOffset; box_link *m_oLink; box_view *m_oView; void init_pos(); void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); QPoint m_oRealPosition; QVariant itemChange(GraphicsItemChange i_oChange, const QVariant &i_oValue); void mousePressEvent(QGraphicsSceneMouseEvent* e); void mouseReleaseEvent(QGraphicsSceneMouseEvent* e); void force_position(const QPoint&); private: bool m_bChanged; bool m_bForced; }; #endif // BOX_CTRL_H semantik-0.9.5/src/fig/box_database.cpp000664 000000 000000 00000004522 12732552614 020006 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include "box_database.h" #include "data_item.h" #include "res:zable.h" #include "box_view.h" #include "box_link.h" #include "sem_mediator.h" #include "mem_box.h" #include #define PAD 2 #define MIN_FORK_SIZE 30 box_database::box_database(box_view* view, int id) : box_item(view, id) { QFont font = doc.defaultFont(); font.setPointSize(font.pointSize() - 2); doc.setDefaultFont(font); } void box_database::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->save(); QRectF l_oRect = boundingRect().adjusted(PAD, PAD, -PAD, -PAD); QPen l_oPen = QPen(Qt::SolidLine); l_oPen.setColor(Qt::black); l_oPen.setCosmetic(false); l_oPen.setWidth(1); painter->setPen(l_oPen); if (isSelected()) { l_oPen.setStyle(Qt::DotLine); } painter->setPen(l_oPen); QRectF l_oRect2(l_oRect); qreal l_fRat = l_oRect2.width()/2.2; if (l_fRat > l_oRect.height() - 5) { l_fRat = l_oRect.height() - 5; } l_oRect2.setHeight(l_fRat); QColor bc(m_oBox->color); if (m_oView->m_bDisableGradient) { painter->setBrush(bc); } else { QLinearGradient linearGradient(0, 0, l_oRect.width(), 0); linearGradient.setColorAt(0.0, bc); linearGradient.setColorAt(1.0, bc.darker(GRADVAL)); painter->setBrush(linearGradient); } QRectF l_oRect3 = l_oRect2.translated(0, l_oRect.height() - l_oRect2.height()); qreal l_fY1 = l_oRect2.topLeft().y() + l_oRect2.height()/2.; //qreal l_fY2 = l_oRect3.topLeft().y() + l_oRect3.height()/2.; qreal l_fX1 = l_oRect.topLeft().x(); //qreal l_fX2 = l_oRect.topRight().x(); QPainterPath p; p.addRect(l_fX1, l_fY1, l_oRect.width(), l_oRect3.topLeft().y() - l_oRect2.topLeft().y() + l_oRect2.height()/2. - l_oRect3.height()/2.); QPainterPath p2; p2.addEllipse(l_oRect3); p |= p2; painter->drawPath(p); painter->setBrush(bc); painter->drawEllipse(l_oRect2); if (isSelected()) { l_oPen.setStyle(Qt::SolidLine); painter->setPen(l_oPen); painter->setBrush(QColor("#FFFF00")); QRectF l_oR2(m_iWW - 8, m_iHH - 8, 6, 6); painter->drawRect(l_oR2); } painter->restore(); } semantik-0.9.5/src/fig/box_database.h000664 000000 000000 00000000670 12732552614 017453 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef BOX_DATABASE_H #define BOX_DATABASE_H #include #include #include "res:zable.h" #include "ed:table.h" #include "box_item.h" #include "CON.h" #include "con.h" #define OFF 3 class box_database : public box_item { public: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); box_database(box_view*, int i_iId); }; #endif // BOX_ACTOR_H semantik-0.9.5/src/fig/box_decision.cpp000664 000000 000000 00000004332 12732552614 020036 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include #include #include "box_decision.h" #include "data_item.h" #include "res:zable.h" #include "box_view.h" #include "box_link.h" #include "sem_mediator.h" #include "mem_box.h" #include #define PAD 2 #define MIN_FORK_SIZE 30 box_decision::box_decision(box_view* view, int id) : box_item(view, id) { QFont font = doc.defaultFont(); font.setBold(true); doc.setDefaultFont(font); setZValue(90); } void box_decision::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->save(); QRectF l_oRect = boundingRect().adjusted(PAD, PAD, -PAD, -PAD); QColor bc(m_oBox->color); if (m_oView->m_bDisableGradient) { painter->setBrush(bc); } else { QLinearGradient linearGradient(0, 0, l_oRect.width(), 0); linearGradient.setColorAt(0.0, bc); linearGradient.setColorAt(1.0, bc.darker(GRADVAL)); painter->setBrush(linearGradient); } QPen l_oPen = QPen(Qt::SolidLine); l_oPen.setColor(Qt::black); l_oPen.setCosmetic(false); l_oPen.setWidth(1); if (isSelected()) { l_oPen.setStyle(Qt::DotLine); } painter->setPen(l_oPen); QPointF pts[4]; // NESW QPointF topLeft = l_oRect.topLeft(); pts[0] = topLeft + QPointF(l_oRect.width()/2, 0); pts[1] = topLeft + QPointF(l_oRect.width(), l_oRect.height()/2); pts[2] = topLeft + QPointF(l_oRect.width()/2, l_oRect.height()); pts[3] = topLeft + QPointF(0, l_oRect.height()/2); painter->drawPolygon(pts, 4); if (isSelected()) { l_oPen.setStyle(Qt::SolidLine); painter->setPen(l_oPen); painter->setBrush(QColor("#FFFF00")); QRectF l_oR2(m_iWW - 8, m_iHH - 8, 6, 6); painter->drawRect(l_oR2); } painter->restore(); } void box_decision::update_size() { m_iWW = m_oBox->m_iWW; m_iHH = m_oBox->m_iHH; doc.setHtml(QString("
%1
").arg(m_oBox->m_sText)); doc.setTextWidth(m_iWW - 2 * OFF - 20); setRect(0, 0, m_iWW, m_iHH); } semantik-0.9.5/src/fig/box_decision.h000664 000000 000000 00000000721 12732552614 017501 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef BOX_DECISION_H #define BOX_DECISION_H #include #include #include "res:zable.h" #include "ed:table.h" #include "box_item.h" #include "CON.h" #include "con.h" #define OFF 3 class box_decision : public box_item { public: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); box_decision(box_view*, int i_iId); void update_size(); }; #endif // BOX_DECISION_H semantik-0.9.5/src/fig/box_document_properties.cpp000664 000000 000000 00000003376 12732552614 022342 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include "mem_box.h" #include "box_view.h" #include "kiconloader.h" #include #include "sem_mediator.h" #include "box_document_properties.h" box_document_properties::box_document_properties(box_view *i_oParent): KPageDialog(i_oParent) { m_oView = i_oParent; setCaption(trUtf8("Diagram properties")); setButtons(KDialog::Ok | KDialog::Apply | KDialog::Cancel); //enableButtonApply(false); setFaceType(List); // TODO not the correct font data_item *l_oItem = m_oView->m_oMediator->m_oItems.value(m_oView->m_iId); m_oFontChooser = new KFontChooser(this, KFontChooser::NoDisplayFlags, QStringList(), 0); m_oFontChooser->setFont(l_oItem->m_oDiagramFont); KPageWidgetItem* l_oPage = new KPageWidgetItem(m_oFontChooser, trUtf8("Font")); l_oPage->setIcon(KIcon(DesktopIcon(notr("preferences-desktop-font")))); l_oPage->setHeader(trUtf8("Font for diagram objects")); addPage(l_oPage); connect(this, SIGNAL(applyClicked()), this, SLOT(apply())); connect(this, SIGNAL(okClicked()), this, SLOT(apply())); QSize size(650, 620); resize(size.expandedTo(minimumSizeHint())); } void box_document_properties::apply() { data_item *l_oItem = m_oView->m_oMediator->m_oItems.value(m_oView->m_iId); mem_diagram_properties *mem = new mem_diagram_properties(m_oView->m_oMediator, m_oView->m_iId); mem->m_oOldFont = l_oItem->m_oDiagramFont; mem->m_oNewFont = m_oFontChooser->font(); mem->apply(); /*if (!isButtonEnabled(KDialog::Apply)) { return; } enableButtonApply(false);*/ } #include "box_document_properties.moc" semantik-0.9.5/src/fig/box_document_properties.h000664 000000 000000 00000000563 12732552614 022002 0ustar00rootroot000000 000000 // Thomas Nagy 2012 GPLV3 #ifndef BOX_DOCUMENT_PROPERTIES_H #define BOX_DOCUMENT_PROPERTIES_H #include #include "box_view.h" class KFontChooser; class box_document_properties : public KPageDialog { Q_OBJECT public: box_document_properties(box_view*); KFontChooser *m_oFontChooser; box_view *m_oView; public slots: void apply(); }; #endif semantik-0.9.5/src/fig/box_dot.cpp000664 000000 000000 00000007417 12732552614 017036 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include "box_dot.h" #include "box_view.h" #include "box_link.h" #include "data_item.h" #include "sem_mediator.h" #define PAD 2 box_dot::box_dot(box_view* i_oParent, int i_iId) : QGraphicsRectItem(), connectable(), m_oView(i_oParent) { m_iId = i_iId; m_oItem = m_oView->m_oMediator->m_oItems[m_oView->m_iId]; m_oBox = m_oItem->m_oBoxes[m_iId]; Q_ASSERT(m_oBox); i_oParent->scene()->addItem(this); //setRect(QRectF(QPointF(0, 0), QSizeF(20, 20))); m_oChain = new box_chain(i_oParent); m_oChain->setParentItem(this); setCacheMode(QGraphicsItem::DeviceCoordinateCache); setZValue(100); setFlags(ItemIsMovable | ItemIsSelectable | ItemSendsGeometryChanges); update_size(); } box_dot::~box_dot() { delete m_oChain; } void box_dot::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->save(); QRectF l_oRect = boundingRect().adjusted(PAD, PAD, -PAD, -PAD); QPen l_oPen = QPen(Qt::SolidLine); l_oPen.setColor(Qt::black); if (isSelected()) l_oPen.setStyle(Qt::DotLine); l_oPen.setCosmetic(false); l_oPen.setWidth(1); painter->setPen(l_oPen); if (m_oBox->m_bIsEnd) { painter->drawEllipse(l_oRect); painter->setBrush(m_oBox->color); QRectF in = l_oRect.adjusted(PAD+1, PAD+1, -PAD-1, -PAD-1); painter->drawEllipse(in); } else { painter->setBrush(m_oBox->color); painter->drawEllipse(l_oRect); } painter->restore(); } void box_dot::mousePressEvent(QGraphicsSceneMouseEvent* e) { setZValue(100); QGraphicsRectItem::mousePressEvent(e); } void box_dot::mouseReleaseEvent(QGraphicsSceneMouseEvent* e) { setZValue(99); QGraphicsRectItem::mouseReleaseEvent(e); } /*QRectF box_dot::boundingRect() const { return rect().adjusted(-OFF, -OFF, OFF, OFF); }*/ void box_dot::update_data() { setPos(QPointF(m_oBox->m_iXX, m_oBox->m_iYY)); update_size(); update(); } void box_dot::update_size() { setRect(0, 0, m_oBox->m_iWW, m_oBox->m_iHH); m_oChain->setPos(m_oBox->m_iWW + 3, 0); } QVariant box_dot::itemChange(GraphicsItemChange i_oChange, const QVariant &i_oValue) { if (scene()) { if (i_oChange == ItemPositionChange) { QPointF np = i_oValue.toPointF(); np.setX(((int) np.x() / GRID) * GRID); np.setY(((int) np.y() / GRID) * GRID); return np; } else if (i_oChange == ItemPositionHasChanged) { update_links(); } else if (i_oChange == ItemSelectedHasChanged) { m_oChain->setVisible(isSelected()); if (isSelected()) setZValue(101); else setZValue(100); } } return QGraphicsItem::itemChange(i_oChange, i_oValue); } void box_dot::update_links() { // FIXME foreach (box_link* l_oLink, m_oView->m_oLinks) { l_oLink->update_pos(); } } int box_dot::choose_position(const QPointF& i_oP, int id) { QRectF r = rect(); QPointF l_o = pos() - i_oP + QPointF(r.width()/2, r.height()/2); double c_x = l_o.x() * r.height(); double c_y = l_o.y() * r.width(); if (qAbs(c_x) > qAbs(c_y)) { return (c_x > 0) ? data_link::WEST : data_link::EAST; } else { return (c_y > 0) ? data_link::NORTH : data_link::SOUTH; } return data_link::NORTH; } QPoint box_dot::get_point(int i_oP) { QRectF r = rect(); switch (i_oP & data_link::COORD) { case data_link::NORTH: return QPoint(r.x() + r.width() / 2., r.y()); case data_link::WEST: return QPoint(r.x(), r.y() + r.height() / 2); case data_link::SOUTH: return QPoint(r.x() + r.width()/2., r.y() + r.height()); case data_link::EAST: return QPoint(r.x() + r.width(), r.y() + r.height()/2.); } Q_ASSERT(false); return QPoint(0, 0); } semantik-0.9.5/src/fig/box_dot.h000664 000000 000000 00000002122 12732552614 016467 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef BOX_DOT_H #define BOX_DOT_H #include #include #include "CON.h" #include "con.h" #define OFF 3 class QTextDocument; class box_view; class data_item; class data_box; class box_dot : public QGraphicsRectItem, public connectable { public: box_dot(box_view*, int i_iId); ~box_dot(); void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); //QRectF boundingRect() const; QRectF rect() const { return boundingRect().translated(pos()).adjusted(JUST, JUST, -JUST, -JUST); }; //void setRect(int, int, int, int) { } box_view *m_oView; data_item *m_oItem; void mousePressEvent(QGraphicsSceneMouseEvent* e); void mouseReleaseEvent(QGraphicsSceneMouseEvent* e); //void keyPressEvent(QKeyEvent*); //void keyReleaseEvent(QKeyEvent*); void update_data(); void update_links(); void update_size(); QVariant itemChange(GraphicsItemChange i_oChange, const QVariant &i_oValue); int choose_position(const QPointF&p, int id=-1); QPoint get_point(int position); }; #endif // BOX_DOT_H semantik-0.9.5/src/fig/box_fork.cpp000664 000000 000000 00000022357 12732552614 017211 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include "box_fork.h" #include "data_item.h" #include "res:zable.h" #include "box_view.h" #include "box_link.h" #include "sem_mediator.h" #include "mem_box.h" #define PAD 2 #define MIN_FORK_SIZE 30 box_fork::box_fork(box_view* i_oParent, int i_iId) : QGraphicsRectItem(), connectable(), resizable(), m_oView(i_oParent) { m_iId = i_iId; m_oItem = m_oView->m_oMediator->m_oItems[m_oView->m_iId]; m_oBox = m_oItem->m_oBoxes[m_iId]; Q_ASSERT(m_oBox); m_oChain = new box_chain(i_oParent); m_oChain->setParentItem(this); i_oParent->scene()->addItem(this); setCacheMode(QGraphicsItem::DeviceCoordinateCache); setZValue(100); setFlags(ItemIsMovable | ItemIsSelectable | ItemSendsGeometryChanges); if (m_oBox->m_bIsVertical) { m_oTop = new box_resize_point(m_oView, this); m_oTop->setRect(-CTRLSIZE/2., 0, CTRLSIZE, CTRLSIZE); m_oTop->setCursor(Qt::SizeVerCursor); // FIXME if someone has a solution for this m_oTop->hide(); m_oDown = new box_resize_point(m_oView, this); m_oDown->setRect(-CTRLSIZE/2., -CTRLSIZE, CTRLSIZE, CTRLSIZE); m_oDown->setCursor(Qt::SizeVerCursor); m_oDown->hide(); m_oLeft = m_oRight = NULL; } else { m_oLeft = new box_resize_point(m_oView, this); m_oLeft->setRect(0, -CTRLSIZE/2., CTRLSIZE, CTRLSIZE); m_oLeft->setCursor(Qt::SizeHorCursor); m_oLeft->hide(); m_oRight = new box_resize_point(m_oView, this); m_oRight->setRect(-CTRLSIZE, -CTRLSIZE/2., CTRLSIZE, CTRLSIZE); m_oRight->setCursor(Qt::SizeHorCursor); m_oRight->hide(); m_oTop = m_oDown = NULL; } setRect(QRectF(0, 0, m_oBox->m_iWW, m_oBox->m_iHH)); } box_fork::~box_fork() { delete m_oTop; delete m_oDown; delete m_oLeft; delete m_oRight; delete m_oChain; } void box_fork::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->save(); QRectF l_oRect = boundingRect().adjusted(PAD, PAD, -PAD, -PAD); QPen l_oPen = QPen(Qt::SolidLine); l_oPen.setColor(Qt::black); if (isSelected()) l_oPen.setStyle(Qt::DotLine); l_oPen.setCosmetic(false); l_oPen.setWidth(1); painter->setBrush(m_oBox->color); painter->drawRect(l_oRect); painter->restore(); } void box_fork::mousePressEvent(QGraphicsSceneMouseEvent* e) { setZValue(100); QGraphicsRectItem::mousePressEvent(e); } void box_fork::update_sizers() { QPointF p = pos(); if (m_oBox->m_bIsVertical) { m_oTop ->setPos(p.x() + m_oBox->m_iWW/2., p.y()); m_oDown->setPos(p.x() + m_oBox->m_iWW/2., p.y() + m_oBox->m_iHH); } else { m_oLeft ->setPos(p.x() , p.y() + m_oBox->m_iHH / 2.); m_oRight->setPos(p.x() + m_oBox->m_iWW, p.y() + m_oBox->m_iHH / 2.); } } void box_fork::mouseReleaseEvent(QGraphicsSceneMouseEvent* e) { setZValue(99); QGraphicsRectItem::mouseReleaseEvent(e); update_sizers(); } void box_fork::update_data() { int ww = m_oBox->m_iWW; int hh = m_oBox->m_iHH; setPos(QPointF(m_oBox->m_iXX, m_oBox->m_iYY)); Q_ASSERT(ww < 9999 && ww > 0); Q_ASSERT(hh < 9999 && hh > 0); QRectF r = QRectF(0, 0, ww, hh); setRect(r); m_oChain->setPos(m_oBox->m_iWW + 3, 0); update_sizers(); } QVariant box_fork::itemChange(GraphicsItemChange i_oChange, const QVariant &i_oValue) { if (scene()) { if (i_oChange == ItemPositionChange) { QPointF np = i_oValue.toPointF(); /*if (m_oLeft && m_oLeft->m_bHeld) { //np.setX(m_oBox->m_iXX + m_oBox->m_iWW / 2.); np.setY(m_oBox->m_iYY + m_oBox->m_iHH / 2.); return np; } else if (m_oRight && m_oRight->m_bHeld) { //np.setX(m_oBox->m_iXX + m_oBox->m_iWW / 2.); np.setY(m_oBox->m_iYY + m_oBox->m_iHH / 2.); return np; } else*/ { np.setX(((int) np.x() / GRID) * GRID); np.setY(((int) np.y() / GRID) * GRID); return np; } } else if (i_oChange == ItemPositionHasChanged) { update_links(); update_sizers(); } else if (i_oChange == ItemSelectedHasChanged) { bool b = isSelected(); if (b) { setZValue(101); } else { setZValue(100); } m_oChain->setVisible(isSelected()); if (m_oLeft) m_oLeft->setVisible(b); if (m_oRight) m_oRight->setVisible(b); if (m_oTop) m_oTop->setVisible(b); if (m_oDown) m_oDown->setVisible(b); } } return QGraphicsItem::itemChange(i_oChange, i_oValue); } void box_fork::update_links() { // FIXME foreach (box_link* l_oLink, m_oView->m_oLinks) { l_oLink->update_pos(); } } static int RATIO[] = {250, 333, 500, 667, 750, 0}; int box_fork::choose_position(const QPointF& i_oP, int id) { QRectF r = rect(); QPointF l_o = pos() - i_oP + QPointF(r.width()/2, r.height()/2); double c_x = l_o.x() * r.height(); double c_y = l_o.y() * r.width(); int ret = 0; int best = 1<<30; int cand = 0; if (m_oBox->m_bIsVertical) { ret = (c_x > 0) ? data_link::WEST : data_link::EAST; for (int i=0; i < 10; ++i) { int k = RATIO[i]; if (k == 0) break; int val = qAbs((k * r.height() / 1000.) - (i_oP.y() - pos().y())); if (val < best) { best = val; cand = k; } } ret += cand * MUL; } else { ret = (c_y > 0) ? data_link::NORTH : data_link::SOUTH; for (int i=0; i < 10; ++i) { int k = RATIO[i]; if (k == 0) break; int val = qAbs((k * r.width() / 1000.) - (i_oP.x() - pos().x())); if (val < best) { best = val; cand = k; } } ret += cand * MUL; } return ret; } int round_point(int x) { // Ugly float y = x; y = qRound(y / GRID); int k = GRID * y; return k; }; QPoint box_fork::get_point(int i_oP) { QRectF r = rect(); int ratio = i_oP / MUL; if (ratio >= 1000 || ratio <= 0) ratio = 500; switch (i_oP & data_link::COORD) { case data_link::NORTH: return QPoint(round_point(r.x() + r.width() * ratio / 1000.), r.y()); case data_link::WEST: return QPoint(r.x(), round_point(r.y() + r.height() * ratio / 1000.)); case data_link::SOUTH: return QPoint(round_point(r.x() + r.width() * ratio / 1000.), r.y() + r.height()); case data_link::EAST: return QPoint(r.x() + r.width(), round_point( r.y() + r.height() * ratio / 1000. )); } Q_ASSERT(false); return QPoint(0, 0); } QPointF box_fork::validate_point(box_resize_point *p, const QPointF & orig) { QPointF pf = QPointF(orig); QSizeF s; if (p == m_oTop) { pf.setX(m_oBox->m_iXX + m_oBox->m_iWW / 2.); m_iLastStretch = - pf.y() + m_oBox->m_iYY + m_oBox->m_iHH; m_iLastStretch = GRID * (m_iLastStretch / GRID); if (m_iLastStretch < MIN_FORK_SIZE) m_iLastStretch = MIN_FORK_SIZE; pf.setY(m_oBox->m_iYY + m_oBox->m_iHH - m_iLastStretch); setPos(m_oBox->m_iXX, pf.y()); s = QSizeF(FORK_WIDTH, m_iLastStretch); m_oChain->setPos(FORK_WIDTH + 3, 0); } else if (p == m_oDown) { pf.setX(m_oBox->m_iXX + m_oBox->m_iWW / 2.); m_iLastStretch = pf.y() - m_oBox->m_iYY; m_iLastStretch = GRID * (m_iLastStretch / GRID); if (m_iLastStretch < MIN_FORK_SIZE) m_iLastStretch = MIN_FORK_SIZE; pf.setY(m_oBox->m_iYY + m_iLastStretch); s = QSizeF(FORK_WIDTH, m_iLastStretch); m_oChain->setPos(FORK_WIDTH + 3, 0); } else if (p == m_oLeft) { pf.setY(m_oBox->m_iYY + m_oBox->m_iHH / 2.); m_iLastStretch = - pf.x() + m_oBox->m_iXX + m_oBox->m_iWW; m_iLastStretch = GRID * (m_iLastStretch / GRID); if (m_iLastStretch < MIN_FORK_SIZE) m_iLastStretch = MIN_FORK_SIZE; pf.setX(m_oBox->m_iXX + m_oBox->m_iWW - m_iLastStretch); setPos(pf.x(), m_oBox->m_iYY); s = QSizeF(m_iLastStretch, FORK_WIDTH); m_oChain->setPos(m_iLastStretch + 3, 0); } else if (p == m_oRight) { pf.setY(m_oBox->m_iYY + m_oBox->m_iHH / 2.); m_iLastStretch = pf.x() - m_oBox->m_iXX; m_iLastStretch = GRID * (m_iLastStretch / GRID); if (m_iLastStretch < MIN_FORK_SIZE) m_iLastStretch = MIN_FORK_SIZE; pf.setX(m_oBox->m_iXX + m_iLastStretch); s = QSizeF(m_iLastStretch, FORK_WIDTH); m_oChain->setPos(m_iLastStretch + 3, 0); } setRect(QRectF(QPointF(0, 0), s)); m_oView->message(m_oView->trUtf8("%1 x %2").arg(QString::number(s.width()), QString::number(s.height())), 1000); return pf; } void box_fork::commit_size(box_resize_point *p) { QRect r_orig(m_oBox->m_iXX, m_oBox->m_iYY, m_oBox->m_iWW, m_oBox->m_iHH); QRect r_dest; if (p == m_oTop) { r_dest.setX(m_oBox->m_iXX); r_dest.setY(m_oBox->m_iYY + m_oBox->m_iHH - m_iLastStretch); r_dest.setWidth(m_oBox->m_iWW); r_dest.setHeight(m_iLastStretch); } else if (p == m_oDown) { r_dest.setX(m_oBox->m_iXX); r_dest.setY(m_oBox->m_iYY); r_dest.setWidth(m_oBox->m_iWW); r_dest.setHeight(m_iLastStretch); } else if (p == m_oLeft) { r_dest.setX(m_oBox->m_iXX + m_oBox->m_iWW - m_iLastStretch); r_dest.setY(m_oBox->m_iYY); r_dest.setHeight(m_oBox->m_iHH); r_dest.setWidth(m_iLastStretch); } else if (p == m_oRight) { r_dest.setX(m_oBox->m_iXX); r_dest.setY(m_oBox->m_iYY); r_dest.setHeight(m_oBox->m_iHH); r_dest.setWidth(m_iLastStretch); } mem_size_box *mem = new mem_size_box(m_oView->m_oMediator, m_oView->m_iId); mem->prev_values[m_oBox] = r_orig; mem->next_values[m_oBox] = r_dest; mem->apply(); } void box_fork::freeze(bool b) { if (b) { setFlags(ItemIsSelectable); m_iLastStretch = 0; } else { setFlags(ItemIsMovable | ItemIsSelectable | ItemSendsGeometryChanges); } } semantik-0.9.5/src/fig/box_fork.h000664 000000 000000 00000002453 12732552614 016651 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef BOX_FORK_H #define BOX_FORK_H #include #include #include "CON.h" #include "res:zable.h" #include "con.h" #define OFF 3 #define FORK_LENGTH 160 #define FORK_WIDTH 8 class QTextDocument; class box_view; class data_item; class data_box; class box_fork : public QGraphicsRectItem, public connectable, public resizable { public: box_fork(box_view*, int i_iId); ~box_fork(); void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); QRectF rect() const { return boundingRect().translated(pos()).adjusted(JUST, JUST, -JUST, -JUST); }; box_view *m_oView; data_item *m_oItem; void mousePressEvent(QGraphicsSceneMouseEvent* e); void mouseReleaseEvent(QGraphicsSceneMouseEvent* e); void update_data(); void update_links(); box_resize_point *m_oTop; box_resize_point *m_oDown; box_resize_point *m_oLeft; box_resize_point *m_oRight; QVariant itemChange(GraphicsItemChange i_oChange, const QVariant &i_oValue); int choose_position(const QPointF&p, int id=-1); QPoint get_point(int position); void update_sizers(); int m_iLastStretch; QPointF validate_point(box_resize_point *p, const QPointF & orig); void freeze(bool b); void commit_size(box_resize_point *p); }; #endif // BOX_FORK_H semantik-0.9.5/src/fig/box_frame.cpp000664 000000 000000 00000002271 12732552614 017333 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include "box_frame.h" #include "data_item.h" #include "res:zable.h" #include "box_view.h" #include "box_link.h" #include "sem_mediator.h" #include "mem_box.h" #include #define PAD 2 #define MIN_FORK_SIZE 30 box_frame::box_frame(box_view* view, int id) : box_item(view, id) { QFont font = doc.defaultFont(); font.setPointSize(font.pointSize() - 2); doc.setDefaultFont(font); setZValue(80); } void box_frame::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->save(); QRectF l_oRect = boundingRect().adjusted(PAD, PAD, -PAD, -PAD); QPen l_oPen = QPen(Qt::SolidLine); l_oPen.setColor(Qt::black); l_oPen.setCosmetic(false); l_oPen.setWidth(1); painter->setPen(l_oPen); painter->drawRect(l_oRect); if (isSelected()) { painter->setBrush(QColor("#FFFF00")); QRectF l_oR2(m_iWW - 8, m_iHH - 8, 6, 6); painter->drawRect(l_oR2); } painter->restore(); } semantik-0.9.5/src/fig/box_frame.h000664 000000 000000 00000000654 12732552614 017003 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef BOX_FRAME_H #define BOX_FRAME_H #include #include #include "res:zable.h" #include "ed:table.h" #include "box_item.h" #include "CON.h" #include "con.h" #define OFF 3 class box_frame : public box_item { public: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); box_frame(box_view*, int i_iId); }; #endif // BOX_FRAME_H semantik-0.9.5/src/fig/box_item.cpp000664 000000 000000 00000016434 12732552614 017205 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "box_item.h" #include "box_view.h" #include "box_link.h" #include "data_item.h" #include "sem_mediator.h" #include "mem_box.h" #define PAD 2 box_item::box_item(box_view* i_oParent, int i_iId) : QGraphicsRectItem(), connectable(), editable(), m_oView(i_oParent) { m_iId = i_iId; m_bMoving = false; m_oItem = m_oView->m_oMediator->m_oItems[m_oView->m_iId]; m_oBox = m_oItem->m_oBoxes[m_iId]; Q_ASSERT(m_oBox); i_oParent->scene()->addItem(this); m_oChain = new box_chain(i_oParent); m_oChain->setParentItem(this); setCacheMode(QGraphicsItem::DeviceCoordinateCache); update_size(); setZValue(100); setFlags(ItemIsMovable | ItemIsSelectable | ItemSendsGeometryChanges); } box_item::~box_item() { delete m_oChain; } void box_item::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { QRectF l_oRect = boundingRect().adjusted(PAD, PAD, -PAD, -PAD); painter->setFont(scene()->font()); doc.setDefaultFont(scene()->font()); QPen l_oPen = QPen(Qt::SolidLine); l_oPen.setColor(Qt::black); if (isSelected()) l_oPen.setStyle(Qt::DotLine); l_oPen.setCosmetic(false); l_oPen.setWidth(1); painter->setPen(l_oPen); QColor bc(m_oBox->color); if (m_oView->m_bDisableGradient) { painter->setBrush(bc); } else { QLinearGradient linearGradient(0, 0, l_oRect.width(), 0); linearGradient.setColorAt(0.0, bc); linearGradient.setColorAt(1.0, bc.darker(GRADVAL)); painter->setBrush(linearGradient); } painter->drawRoundRect(l_oRect, 20, 20); if (isSelected()) { l_oPen.setStyle(Qt::SolidLine); painter->setPen(l_oPen); painter->setBrush(QColor("#FFFF00")); QRectF l_oR2(m_iWW - 8, m_iHH - 8, 6, 6); painter->drawRect(l_oR2); /*painter->setBrush(Qt::green); l_oR2.setY(PAD); l_oR2.setHeight(6); painter->drawRect(l_oR2);*/ } QAbstractTextDocumentLayout::PaintContext ctx; ctx.palette = QApplication::palette("QTextControl"); ctx.palette.setColor(QPalette::Text, Qt::black); // white on black kde themes QAbstractTextDocumentLayout * lay = doc.documentLayout(); qreal yoff = lay->documentSize().height(); painter->translate(OFF, OFF + (m_iHH - 2 * OFF - yoff) / 2.); lay->draw(painter, ctx); } void box_item::mousePressEvent(QGraphicsSceneMouseEvent* e) { m_oLastPressPoint = e->pos(); if (m_oLastPressPoint.x() > m_iWW - GRID && m_oLastPressPoint.y() > m_iHH - GRID ) { setFlags(ItemIsSelectable | ItemSendsGeometryChanges); m_bMoving = true; } QGraphicsRectItem::mousePressEvent(e); } void box_item::mouseMoveEvent(QGraphicsSceneMouseEvent *e) { if (m_bMoving) { QPointF np = e->pos(); int x = np.x() - m_oLastPressPoint.x(); int y = np.y() - m_oLastPressPoint.y(); m_iWW = m_oBox->m_iWW + x; if (m_iWW < 2 * GRID) m_iWW = 2 * GRID; m_iWW = grid_int(m_iWW); m_iHH = m_oBox->m_iHH + y; if (m_iHH < 2 * GRID) m_iHH = 2 * GRID; m_iHH = grid_int(m_iHH); doc.setTextWidth(m_iWW - 2 * OFF); setRect(0, 0, m_iWW, m_iHH); m_oChain->setPos(m_iWW + 3, 0); m_oView->message(m_oView->trUtf8("%1 x %2").arg(QString::number(m_iWW), QString::number(m_iHH)), 1000); update(); update_links(); } else { QGraphicsRectItem::mouseMoveEvent(e); } } void box_item::mouseReleaseEvent(QGraphicsSceneMouseEvent* e) { if (m_bMoving) { m_bMoving = false; setFlags(ItemIsMovable | ItemIsSelectable | ItemSendsGeometryChanges); if (m_iWW != m_oBox->m_iWW || m_iHH != m_oBox->m_iHH) { mem_size_box *mem = new mem_size_box(m_oView->m_oMediator, m_oView->m_iId); mem->prev_values[m_oBox] = QRect(m_oBox->m_iXX, m_oBox->m_iYY, m_oBox->m_iWW, m_oBox->m_iHH); mem->next_values[m_oBox] = QRect(m_oBox->m_iXX, m_oBox->m_iYY, m_iWW, m_iHH); mem->apply(); } } else { QGraphicsRectItem::mouseReleaseEvent(e); } } void box_item::update_data() { setPos(QPointF(m_oBox->m_iXX, m_oBox->m_iYY)); if (m_oBox->m_iWW != m_iWW || m_oBox->m_iHH != m_iHH || doc.toPlainText() != m_oBox->m_sText) { update_size(); } update(); } void box_item::update_size() { m_iWW = m_oBox->m_iWW; m_iHH = m_oBox->m_iHH; doc.setHtml(QString("
%1
").arg(m_oBox->m_sText)); doc.setTextWidth(m_iWW - 2 * OFF); setRect(0, 0, m_iWW, m_iHH); m_oChain->setPos(m_iWW + 3, 0); update_links(); } void box_item::properties() { bool ok = false; QString text = KInputDialog::getText(m_oView->trUtf8("Diagram box properties"), m_oView->trUtf8("Text:"), m_oBox->m_sText, &ok); if (ok && text != m_oBox->m_sText) { mem_edit_box *ed = new mem_edit_box(m_oView->m_oMediator, m_oView->m_iId, m_iId); ed->newText = text; QTextDocument doc; doc.setHtml(QString("
%1
").arg(text)); doc.setTextWidth(m_oBox->m_iWW - 2 * OFF); ed->newHeight = GRID * (((int) (doc.size().height() + 2 * OFF + GRID - 1)) / GRID); if (ed->newHeight < m_oBox->m_iHH) ed->newHeight = m_oBox->m_iHH; ed->apply(); } } QVariant box_item::itemChange(GraphicsItemChange i_oChange, const QVariant &i_oValue) { if (scene()) { if (i_oChange == ItemPositionChange) { QPointF np = i_oValue.toPointF(); np.setX(((int) np.x() / GRID) * GRID); np.setY(((int) np.y() / GRID) * GRID); return np; } else if (i_oChange == ItemPositionHasChanged) { update_links(); } else if (i_oChange == ItemSelectedHasChanged) { m_oChain->setVisible(isSelected()); } } return QGraphicsItem::itemChange(i_oChange, i_oValue); } void box_item::update_links() { // FIXME foreach (box_link* l_oLink, m_oView->m_oLinks) { l_oLink->update_pos(); } } static int RATIO[] = {333, 500, 667, 0}; int box_item::choose_position(const QPointF& i_oP, int id) { QRectF r = rect(); QPointF l_o = pos() - i_oP + QPointF(r.width()/2, r.height()/2); double c_x = l_o.x() * r.height(); double c_y = l_o.y() * r.width(); int ret = 0; int best = 1<<30; int cand = 0; if (qAbs(c_x) > qAbs(c_y)) { ret = (c_x > 0) ? data_link::WEST : data_link::EAST; for (int i=0; i < 10; ++i) { int k = RATIO[i]; if (k == 0) break; int val = qAbs((k * r.height() / 1000.) - (i_oP.y() - pos().y())); if (val < best) { best = val; cand = k; } } ret += cand * MUL; } else { ret = (c_y > 0) ? data_link::NORTH : data_link::SOUTH; for (int i=0; i < 10; ++i) { int k = RATIO[i]; if (k == 0) break; int val = qAbs((k * r.width() / 1000.) - (i_oP.x() - pos().x())); if (val < best) { best = val; cand = k; } } ret += cand * MUL; } return ret; } QPoint box_item::get_point(int i_oP) { QRectF r = rect(); int ratio = i_oP / MUL; if (ratio >= 1000 || ratio <= 0) ratio = 500; switch (i_oP & data_link::COORD) { case data_link::NORTH: return QPoint(r.x() + r.width() * ratio / 1000., r.y()); case data_link::WEST: return QPoint(r.x(), r.y() + r.height() * ratio / 1000.); case data_link::SOUTH: return QPoint(r.x() + r.width() * ratio / 1000., r.y() + r.height()); case data_link::EAST: return QPoint(r.x() + r.width(), r.y() + r.height() * ratio / 1000.); } Q_ASSERT(false); return QPoint(0, 0); } semantik-0.9.5/src/fig/box_item.h000664 000000 000000 00000002476 12732552614 016653 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef BOX_ITEM_H #define BOX_ITEM_H #include #include #include #include "res:zable.h" #include "ed:table.h" #include "box_resize_point.h" #include "box_chain.h" #include "CON.h" #include "con.h" #define OFF 3 class QTextDocument; class box_view; class data_item; class data_box; class box_item : public QGraphicsRectItem, public connectable, public editable { public: box_item(box_view*, int i_iId); ~box_item(); void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); QRectF rect() const { return boundingRect().translated(pos()).adjusted(JUST, JUST, -JUST, -JUST); }; //void setRect(int, int, int, int) { } QTextDocument doc; box_view *m_oView; data_item *m_oItem; void mousePressEvent(QGraphicsSceneMouseEvent* e); void mouseMoveEvent(QGraphicsSceneMouseEvent *e); void mouseReleaseEvent(QGraphicsSceneMouseEvent* e); virtual void properties(); virtual void update_data(); virtual void update_size(); virtual void update_links(); QVariant itemChange(GraphicsItemChange i_oChange, const QVariant &i_oValue); int choose_position(const QPointF&p, int id=-1); QPoint get_point(int position); QPointF m_oLastPressPoint; int m_iWW; int m_iHH; bool m_bMoving; }; #endif // BOX_ITEM_H semantik-0.9.5/src/fig/box_label.cpp000664 000000 000000 00000003547 12732552614 017327 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include "box_label.h" #include "data_item.h" #include "res:zable.h" #include "box_view.h" #include "box_link.h" #include "sem_mediator.h" #include "mem_box.h" #include #define PAD 2 #define MIN_FORK_SIZE 30 box_label::box_label(box_view* view, int id) : box_item(view, id) { QFont font = doc.defaultFont(); font.setPointSize(font.pointSize() - 2); doc.setDefaultFont(font); } void box_label::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->save(); doc.setDefaultFont(scene()->font()); //painter->setFont(scene()->font()); QRectF l_oRect = boundingRect().adjusted(PAD, PAD, -PAD, -PAD); if (isSelected()) { QPen l_oPen = QPen(Qt::DotLine); l_oPen.setColor(Qt::black); l_oPen.setCosmetic(false); l_oPen.setWidth(1); painter->setPen(l_oPen); painter->drawRoundRect(l_oRect, 20, 20); l_oPen.setStyle(Qt::SolidLine); painter->setPen(l_oPen); painter->setBrush(QColor("#FFFF00")); QRectF l_oR2(m_iWW - 8, m_iHH - 8, 6, 6); painter->drawRect(l_oR2); } painter->translate(OFF, OFF); QAbstractTextDocumentLayout::PaintContext ctx; ctx.palette = QApplication::palette("QTextControl"); doc.documentLayout()->draw(painter, ctx); painter->restore(); } QVariant box_label::itemChange(GraphicsItemChange i_oChange, const QVariant &i_oValue) { if (scene()) { if (i_oChange == ItemPositionHasChanged) { update_links(); } else if (i_oChange == ItemSelectedHasChanged) { m_oChain->setVisible(isSelected()); } } return QGraphicsItem::itemChange(i_oChange, i_oValue); } semantik-0.9.5/src/fig/box_label.h000664 000000 000000 00000000773 12732552614 016772 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef BOX_LABEL_H #define BOX_LABEL_H #include #include #include "res:zable.h" #include "ed:table.h" #include "box_item.h" #include "CON.h" #include "con.h" #define OFF 3 class box_label : public box_item { public: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); box_label(box_view*, int i_iId); QVariant itemChange(GraphicsItemChange i_oChange, const QVariant &i_oValue); }; #endif // BOX_LABEL_H semantik-0.9.5/src/fig/box_link.cpp000664 000000 000000 00000034225 12732552614 017202 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include "CON.h" #include "box_link.h" #include "box_view.h" #include "data_item.h" #include "mem_box.h" #include #include #include "box_link_properties.h" #define pad 25 #define MAX 2000000000 #define DAMP 1000000 box_link::box_link(box_view* i_oParent) : QGraphicsRectItem(), editable() { m_oInnerLink.m_iParentPos = 0; m_oInnerLink.m_iChildPos = 0; m_oView = i_oParent; m_oLink = NULL; i_oParent->scene()->addItem(this); setZValue(98); setFlags(ItemIsSelectable); m_bReentrantLock = false; m_oStartPoint = new box_control_point(m_oView); m_oStartPoint->hide(); m_oStartPoint->m_bIsSegment = false; m_oStartPoint->m_oLink = this; m_oEndPoint = new box_control_point(m_oView); m_oEndPoint->hide(); m_oEndPoint->m_bIsSegment = false; m_oEndPoint->m_oLink = this; m_oEndPoint->setZValue(117); for (int i=0; i < 7; ++i) { box_control_point* b = new box_control_point(m_oView); b->hide(); b->m_oLink = this; b->m_iOffset = i; m_oControlPoints.append(b); } } box_link::~box_link() { foreach (box_control_point *b, m_oControlPoints) { delete b; } delete m_oStartPoint; delete m_oEndPoint; } #define xw 5. #define yw 12. void compute_angles(bool i_bParent, data_link::LineType i_iType, data_link::Direction i_iDir, qreal *cosphi, qreal *sinphi, qreal ddx, qreal ddy) { if (i_iType) { if (i_bParent) { *sinphi = ddy; *cosphi = ddx; } else { *sinphi = -ddy; *cosphi = -ddx; } } else { switch (i_iDir) //m_oInnerLink.m_iParentPos & data_link::COORD) { case data_link::NORTH: { *sinphi = -1.; *cosphi = 0.; } break; case data_link::WEST: { *sinphi = 0.; *cosphi = -1.; } break; case data_link::SOUTH: { *sinphi = 1.; *cosphi = 0.; } break; case data_link::EAST: { *sinphi = 0.; *cosphi = 1.; } break; default: Q_ASSERT(false); } } } void box_link::paint(QPainter *i_oPainter, const QStyleOptionGraphicsItem *option, QWidget * i_oW) { i_oPainter->setBrush(m_oInnerLink.color); QPen l_oPen(m_oInnerLink.pen_style); l_oPen.setWidth(m_oInnerLink.border_width); l_oPen.setColor(m_oInnerLink.color); i_oPainter->setPen(l_oPen); if (m_oInnerLink.m_iLineType) { int last = m_oGood.size() - 1; QLineF l_oLine(m_oGood[0].x(), m_oGood[0].y(), m_oGood[last].x(), m_oGood[last].y()); i_oPainter->drawLine(l_oLine); } else { for (int i=0; idrawLine(l_oLine); } } int last = m_oGood.size() - 1; qreal dx = m_oGood[last].x() - m_oGood[0].x(); qreal dy = m_oGood[last].y() - m_oGood[0].y(); qreal tot = sqrt(dx * dx + dy * dy); if (tot > 0.01) { l_oPen.setStyle(Qt::SolidLine); i_oPainter->setPen(l_oPen); qreal ddx = dx / tot; qreal ddy = dy / tot; qreal cosphi = 0; qreal sinphi = 1; compute_angles(true, m_oInnerLink.m_iLineType, (data_link::Direction) (m_oInnerLink.m_iParentPos & data_link::COORD), &cosphi, &sinphi, ddx, ddy); if (m_oInnerLink.m_iLeftArrow) { QPolygonF l_oPol(3); l_oPol[1] = m_oGood[0]; l_oPol[0] = m_oGood[0] + QPointF(yw * cosphi - xw * sinphi, yw * sinphi + xw * cosphi); l_oPol[2] = m_oGood[0] + QPointF(yw * cosphi + xw * sinphi, yw * sinphi - xw * cosphi); if (m_oInnerLink.m_iLeftArrow == data_link::INHERITANCE) { i_oPainter->setBrush(Qt::white); } if (m_oInnerLink.m_iLeftArrow == data_link::AGGREGATION) { i_oPainter->setBrush(Qt::white); l_oPol << m_oGood[0] + QPointF(2 * yw * cosphi, 2 * yw * sinphi); } if (m_oInnerLink.m_iLeftArrow == data_link::ASSOCIATION) { i_oPainter->drawPolyline(l_oPol); } else { i_oPainter->drawPolygon(l_oPol); } } compute_angles(false, m_oInnerLink.m_iLineType, (data_link::Direction) (m_oInnerLink.m_iChildPos & data_link::COORD), &cosphi, &sinphi, ddx, ddy); if (m_oInnerLink.m_iRightArrow) { QPolygonF l_oPol(3); l_oPol[1] = m_oGood[last]; l_oPol[0] = m_oGood[last] + QPointF(yw * cosphi - xw * sinphi, yw * sinphi + xw * cosphi); l_oPol[2] = m_oGood[last] + QPointF(yw * cosphi + xw * sinphi, yw * sinphi - xw * cosphi); if (m_oInnerLink.m_iRightArrow == data_link::INHERITANCE) { i_oPainter->setBrush(Qt::white); } if (m_oInnerLink.m_iRightArrow == data_link::AGGREGATION) { i_oPainter->setBrush(Qt::white); l_oPol << m_oGood[last] + QPointF(2 * yw * cosphi, 2 * yw * sinphi); } if (m_oInnerLink.m_iRightArrow == data_link::ASSOCIATION) { i_oPainter->drawPolyline(l_oPol); } else { i_oPainter->drawPolygon(l_oPol); } } } } void box_link::set_rectangles(int ax1, int ax2, int ay1, int ay2, int ap, QPoint& apos, int bx1, int bx2, int by1, int by2, int bp, QPoint& bpos) { hor.clear(); ver.clear(); graph.clear(); prev.clear(); dist.clear(); m_oLst.clear(); hor.append(apos.x()); ver.append(apos.y()); QPair init_p(apos.x(), apos.y()); hor.append(bpos.x()); ver.append(bpos.y()); QPair end_p(bpos.x(), bpos.y()); if (ap == data_link::WEST && bp == data_link::EAST && bx2 >= ax1 - pad) { hor.append(ax1 - pad); hor.append(bx2 + pad); } else if (ap == data_link::EAST && bp == data_link::WEST && ax2 >= bx1 - pad) { hor.append(bx1 - pad); hor.append(ax2 + pad); } else if (ap == data_link::NORTH && bp == data_link::SOUTH && by2 >= ay1 - pad) { ver.append(ay1 - pad); ver.append(by2 + pad); } else if (ap == data_link::SOUTH && bp == data_link::NORTH && ay2 >= by1 - pad) { ver.append(by1 - pad); ver.append(ay2 + pad); } hor.append(qMin(ax1, bx1) - pad); hor.append(qMax(ax2, bx2) + pad); ver.append(qMin(ay1, by1) - pad); ver.append(qMax(ay2, by2) + pad); if (ax1 > bx2) hor.append((ax1 + bx2) / 2); if (bx1 > ax2) hor.append((bx1 + ax2) / 2); if (ay1 > by2) ver.append((ay1 + by2) / 2); if (by1 > ay2) ver.append((by1 + ay2) / 2); foreach (int x, hor) { foreach (int y, ver) { QPair p(x, y); graph << p; dist[p] = MAX; prev[p] = init_p; } } dist[init_p] = 0; while (graph.size()) { int mi = MAX; QPair cand; QPair p; bool ok = false; foreach (p, graph) { if (dist[p] < mi) { mi = dist[p]; cand = p; ok = true; } } if (!ok) { m_oLst.clear(); m_oLst.append(QPoint(init_p.first, init_p.second)); m_oLst.append(QPoint(end_p.first, end_p.second)); break; } graph.remove(cand); if (cand == end_p) { QPair cand = end_p; while (cand != init_p) { m_oLst.prepend(QPoint(cand.first, cand.second)); cand = prev[cand]; } m_oLst.prepend(QPoint(cand.first, cand.second)); break; } foreach (p, graph) { if (p.first == cand.first || p.second == cand.second) { if (may_use(cand, p, ax1, ax2, ay1, ay2, bx1, bx2, by1, by2)) { int newdist = dist[cand] + qAbs(p.first - cand.first) + qAbs(p.second - cand.second) + DAMP; if (newdist < dist[p]) { dist[p] = newdist; prev[p] = cand; } } } } } } int box_link::may_use(QPair cand, QPair p, int ax1, int ax2, int ay1, int ay2, int bx1, int bx2, int by1, int by2) { int cx1 = qMin(cand.first, p.first); int cx2 = qMax(cand.first, p.first); int cy1 = qMin(cand.second, p.second); int cy2 = qMax(cand.second, p.second); return 1 && ( (cx1 >= ax2 && cx2 > ax2) || (cx2 <= ax1 && cx1 < ax1) || (cy1 >= ay2 && cy2 > ay2) || (cy2 <= ay1 && cy1 < ay1) ) && ( (cx1 >= bx2 && cx2 > bx2) || (cx2 <= bx1 && cx1 < bx1) || (cy1 >= by2 && cy2 > by2) || (cy2 <= by1 && cy1 < by1) ); } void box_link::update_pos() { QRectF l_oR1, l_oR2; QPoint apos, bpos; if (connectable *start = m_oView->m_oItems.value(m_oInnerLink.m_iParent)) { m_oInnerLink.m_oStartPoint = apos = start->get_point(m_oInnerLink.m_iParentPos); l_oR1 = start->rect(); } else { QPoint l_oP = m_oInnerLink.m_oStartPoint; l_oR1 = QRectF(l_oP - QPointF(1, 1), l_oP + QPointF(1, 1)); switch (m_oInnerLink.m_iParentPos & data_link::COORD) { case data_link::NORTH: apos = QPoint(l_oP.x(), l_oP.y() - 1); break; case data_link::WEST: apos = QPoint(l_oP.x() - 1, l_oP.y()); break; case data_link::SOUTH: apos = QPoint(l_oP.x(), l_oP.y() + 1); break; case data_link::EAST: apos = QPoint(l_oP.x() + 1, l_oP.y()); break; default: Q_ASSERT(false); } } m_oStartPoint->force_position(m_oInnerLink.m_oStartPoint); if (connectable *end = m_oView->m_oItems.value(m_oInnerLink.m_iChild)) { m_oInnerLink.m_oEndPoint = bpos = end->get_point(m_oInnerLink.m_iChildPos); l_oR2 = end->rect(); } else { QPoint l_oP = m_oInnerLink.m_oEndPoint; l_oR2 = QRectF(l_oP - QPointF(1, 1), l_oP + QPointF(1, 1)); switch (m_oInnerLink.m_iChildPos & data_link::COORD) { case data_link::NORTH: bpos = QPoint(l_oP.x(), l_oP.y() - 1); break; case data_link::WEST: bpos = QPoint(l_oP.x() - 1, l_oP.y()); break; case data_link::SOUTH: bpos = QPoint(l_oP.x(), l_oP.y() + 1); break; case data_link::EAST: bpos = QPoint(l_oP.x() + 1, l_oP.y()); break; default: Q_ASSERT(false); } } m_oEndPoint->force_position(m_oInnerLink.m_oEndPoint); /* int ax1 = (int) l_oR1.x(); int ax2 = (int) (l_oR1.x()+l_oR1.width()); int ay1 = (int) l_oR1.y(); int ay2 = (int) (l_oR1.y()+l_oR1.height()); int bx1 = (int) l_oR2.x(); int bx2 = (int) (l_oR2.x()+l_oR2.width()); int by1 = (int) l_oR2.y(); int by2 = (int) (l_oR2.y()+l_oR2.height()); */ int ax1 = (int) l_oR1.left(); int ax2 = (int) l_oR1.right(); int ay1 = (int) l_oR1.top(); int ay2 = (int) l_oR1.bottom(); int bx1 = (int) l_oR2.left(); int bx2 = (int) l_oR2.right(); int by1 = (int) l_oR2.top(); int by2 = (int) l_oR2.bottom(); set_rectangles(ax1, ax2, ay1, ay2, m_oInnerLink.m_iParentPos, apos, bx1, bx2, by1, by2, m_oInnerLink.m_iChildPos, bpos); /* //qDebug()<<"begin dump"; for (int i=0; iinit_pos(); } } m_bReentrantLock = false; update(); } void box_link::update_ratio() { // here we reset the offsets if necessary int ret = m_oLst.size(); if (m_oGood.size() != ret) { m_oGood.clear(); for (int i=0; iinit_pos(); if (isSelected() && !m_oInnerLink.m_iLineType) { b->show(); } else { b->hide(); } } else { b->hide(); } } QPainterPath p; if (m_oInnerLink.m_iLineType) { if (m_oGood.size() > 0) { double ax = m_oGood[0].x(); double ay = m_oGood[0].y(); double bx = m_oGood[m_oGood.size() - 1].x(); double by = m_oGood[m_oGood.size() - 1].y(); double coeff = 5. / sqrt((by - ay) * (by - ay) + (bx - ax) * (bx - ax)); QPolygonF l_oPol(4); l_oPol[0].setX(ax - coeff * (by - ay)); l_oPol[0].setY(ay - coeff * (ax - bx)); l_oPol[1].setX(ax + coeff * (by - ay)); l_oPol[1].setY(ay + coeff * (ax - bx)); l_oPol[2].setX(bx + coeff * (by - ay)); l_oPol[2].setY(by + coeff * (ax - bx)); l_oPol[3].setX(bx - coeff * (by - ay)); l_oPol[3].setY(by - coeff * (ax - bx)); p.addPolygon(l_oPol); } } else { for (int i = 0; i < m_oGood.size() - 1; ++i) { int x1 = qMin(m_oGood[i].x(), m_oGood[i+1].x()); int x2 = qMax(m_oGood[i].x(), m_oGood[i+1].x()); int y1 = qMin(m_oGood[i].y(), m_oGood[i+1].y()); int y2 = qMax(m_oGood[i].y(), m_oGood[i+1].y()); if (x1 == x2) { p.addRect(x1 - 5, y1, 10, y2 - y1); } else { p.addRect(x1, y1 - 5, x2 - x1, 10); } } } inner_shape = p; } QPainterPath box_link::shape() const { return inner_shape; } QVariant box_link::itemChange(GraphicsItemChange i_oChange, const QVariant &i_oValue) { QVariant l_oRet = QGraphicsItem::itemChange(i_oChange, i_oValue); if (scene()) { if (i_oChange == ItemSelectedHasChanged) { if (isSelected()) { setZValue(102); m_oStartPoint->show(); m_oEndPoint->show(); } else { setZValue(98); m_oStartPoint->hide(); m_oEndPoint->hide(); } update_pos(); } } return QGraphicsItem::itemChange(i_oChange, i_oValue); } void box_link::properties() { box_link_properties props(m_oView, this); props.m_oThickness->setValue(m_oInnerLink.border_width); props.m_oType->setCurrentIndex(m_oInnerLink.m_iLineType); props.m_oStyle->setCurrentIndex((int) m_oInnerLink.pen_style); props.m_oLeftArrow->setCurrentIndex(m_oInnerLink.m_iLeftArrow); props.m_oRightArrow->setCurrentIndex(m_oInnerLink.m_iRightArrow); props.exec(); } semantik-0.9.5/src/fig/box_link.h000664 000000 000000 00000002765 12732552614 016653 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef BOX_LINK_H #define BOX_LINK_H #include #include #include #include #include #include "ed:table.h" #include "con.h" class box_view; class box_item; class data_link; class box_control_point; class box_link : public QGraphicsRectItem, public editable { public: box_link(box_view*); ~box_link(); QPointF m_oMediatorPoint; data_link *m_oLink; data_link m_oInnerLink; box_view *m_oView; void update_pos(); void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); QVariant itemChange(GraphicsItemChange i_oChange, const QVariant &i_oValue); QPainterPath shape() const; QPainterPath inner_shape; QList m_oControlPoints; box_control_point* m_oStartPoint; box_control_point* m_oEndPoint; QList m_oGood; QList m_oLst; void update_offset(const QPointF& i_oP, int i_iIdx); void update_ratio(); void properties(); bool m_bReentrantLock; // This shows how to abuse the qt containers :-) QList ver; QList hor; QSet > graph; QHash, QPair > prev; QHash, int> dist; void set_rectangles(int ax1, int ax2, int ay1, int ay2, int ap, QPoint&, int bx1, int bx2, int by1, int by2, int bp, QPoint&); int may_use(QPair cand, QPair p, int ax1, int ax2, int ay1, int ay2, int bx1, int bx2, int by1, int by2); }; #endif // BOX_LINK_H semantik-0.9.5/src/fig/box_link_properties.cpp000664 000000 000000 00000007726 12732552614 021464 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include "mem_box.h" #include "box_view.h" #include #include "box_link_properties.h" box_link_properties::box_link_properties(QWidget *i_oParent, box_link *i_oLink): KDialog(i_oParent) { QWidget *widget = new QWidget(this); setCaption(trUtf8("Link properties")); setButtons(KDialog::Ok | KDialog::Apply | KDialog::Cancel); enableButtonApply(false); m_oLink = i_oLink; QGridLayout *l_oGridLayout = new QGridLayout(widget); QLabel *l_sLabel; l_sLabel = new QLabel(widget); l_sLabel->setText(trUtf8("Thickness")); l_oGridLayout->addWidget(l_sLabel, 0, 0); l_sLabel = new QLabel(widget); l_sLabel->setText(trUtf8("Line Type")); l_oGridLayout->addWidget(l_sLabel, 1, 0); l_sLabel = new QLabel(widget); l_sLabel->setText(trUtf8("Line Style")); l_oGridLayout->addWidget(l_sLabel, 2, 0); l_sLabel = new QLabel(widget); l_sLabel->setText(trUtf8("Origin arrow")); l_oGridLayout->addWidget(l_sLabel, 3, 0); l_sLabel = new QLabel(widget); l_sLabel->setText(trUtf8("Target arrow")); l_oGridLayout->addWidget(l_sLabel, 4, 0); m_oThickness = new QSpinBox(widget); m_oThickness->setMinimum(1); m_oThickness->setMaximum(3); l_oGridLayout->addWidget(m_oThickness, 0, 1); m_oType = new QComboBox(widget); m_oType->addItem(trUtf8("Zigzag"), 0); m_oType->addItem(trUtf8("Straight"), 0); l_oGridLayout->addWidget(m_oType, 1, 1); m_oStyle = new QComboBox(widget); m_oStyle->addItem(trUtf8("Invisible line"), (int) Qt::NoPen); m_oStyle->addItem(trUtf8("Solid Line"), (int) Qt::SolidLine); m_oStyle->addItem(trUtf8("Dash Line"), (int) Qt::DashLine); m_oStyle->addItem(trUtf8("Dot Line"), (int) Qt::DotLine); l_oGridLayout->addWidget(m_oStyle, 2, 1); m_oLeftArrow = new QComboBox(widget); m_oLeftArrow->addItem(trUtf8("No arrow"), 0); m_oLeftArrow->addItem(trUtf8("Triangle"), 0); m_oLeftArrow->addItem(trUtf8("Link"), 0); m_oLeftArrow->addItem(trUtf8("Inheritance"), 0); m_oLeftArrow->addItem(trUtf8("Aggregation"), 0); l_oGridLayout->addWidget(m_oLeftArrow, 3, 1); m_oRightArrow = new QComboBox(widget); m_oRightArrow->addItem(trUtf8("No arrow"), 0); m_oRightArrow->addItem(trUtf8("Triangle"), 0); m_oRightArrow->addItem(trUtf8("Link"), 0); m_oRightArrow->addItem(trUtf8("Inheritance"), 0); m_oRightArrow->addItem(trUtf8("Aggregation"), 0); l_oGridLayout->addWidget(m_oRightArrow, 4, 1); setMainWidget(widget); QSize size(350, 120); resize(size.expandedTo(minimumSizeHint())); connect(this, SIGNAL(applyClicked()), this, SLOT(apply())); connect(this, SIGNAL(okClicked()), this, SLOT(apply())); connect(m_oThickness, SIGNAL(valueChanged(int)), this, SLOT(enable_apply(int))); connect(m_oType, SIGNAL(currentIndexChanged(int)), this, SLOT(enable_apply(int))); connect(m_oStyle, SIGNAL(currentIndexChanged(int)), this, SLOT(enable_apply(int))); connect(m_oLeftArrow, SIGNAL(currentIndexChanged(int)), this, SLOT(enable_apply(int))); connect(m_oRightArrow, SIGNAL(currentIndexChanged(int)), this, SLOT(enable_apply(int))); m_oThickness->setFocus(); } void box_link_properties::enable_apply(int) { enableButtonApply(true); } void box_link_properties::apply() { if (!isButtonEnabled(KDialog::Apply)) { return; } mem_edit_link *mem = new mem_edit_link(m_oLink->m_oView->m_oMediator, m_oLink->m_oView->m_iId); mem->link = m_oLink->m_oLink; mem->prev.copy_from(m_oLink->m_oInnerLink); mem->next.copy_from(m_oLink->m_oInnerLink); mem->next.border_width = m_oThickness->value(); mem->next.m_iLineType = (data_link::LineType) m_oType->currentIndex(); mem->next.pen_style = (Qt::PenStyle) m_oStyle->currentIndex(); mem->next.m_iLeftArrow = (data_link::Arrow) m_oLeftArrow->currentIndex(); mem->next.m_iRightArrow = (data_link::Arrow) m_oRightArrow->currentIndex(); mem->apply(); enableButtonApply(false); } #include "box_link_properties.moc" semantik-0.9.5/src/fig/box_link_properties.h000664 000000 000000 00000000750 12732552614 021117 0ustar00rootroot000000 000000 // Thomas Nagy 2012 GPLV3 #ifndef BOX_LINK_PROPERTIES_H #define BOX_LINK_PROPERTIES_H #include #include "box_link.h" class QSpinBox; class QComboBox; class box_link_properties : public KDialog { Q_OBJECT public: box_link_properties(QWidget*, box_link*); QSpinBox *m_oThickness; QComboBox *m_oType; QComboBox *m_oStyle; QComboBox *m_oLeftArrow; QComboBox *m_oRightArrow; box_link *m_oLink; public slots: void apply(); void enable_apply(int); }; #endif semantik-0.9.5/src/fig/box_matrix.cpp000664 000000 000000 00000017641 12732552614 017554 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include \ "matrix_dialog.h" #include "box_matrix.h" #include "data_item.h" #include "res:zable.h" #include "box_view.h" #include "box_link.h" #include "sem_mediator.h" #include "mem_box.h" #include #define PAD 2 #define MIN_FORK_SIZE 30 box_matrix::box_matrix(box_view* view, int id) : box_item(view, id) { QFont font = doc.defaultFont(); font.setPointSize(font.pointSize() - 2); doc.setDefaultFont(font); setZValue(80); update_size(); } void box_matrix::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->save(); QRectF l_oRect = boundingRect().adjusted(PAD, PAD, -PAD, -PAD); QPen l_oPen = QPen(Qt::SolidLine); l_oPen.setColor(Qt::black); l_oPen.setWidth(1); painter->setPen(l_oPen); qreal l_iHref = l_oRect.top(); foreach (int l_iHoff, m_oBox->m_oRowSizes) { l_iHref += l_iHoff; painter->drawLine(l_oRect.left(), l_iHref, l_oRect.right(), l_iHref); } l_iHref = l_oRect.left(); foreach (int l_iHoff, m_oBox->m_oColSizes) { l_iHref += l_iHoff; painter->drawLine(l_iHref, l_oRect.top(), l_iHref, l_oRect.bottom()); } painter->drawRect(l_oRect); QRectF l_oR2 = boundingRect(); qreal l_oX = l_oR2.right(); qreal l_oY = l_oR2.bottom(); if (isSelected()) { QRectF l_oR(-8, -8, 6, 6); painter->setBrush(QColor("#FFFF00")); qreal l_i = 6 - PAD; foreach (int l_iSize, m_oBox->m_oRowSizes) { l_i += l_iSize; painter->drawRect(l_oR.translated(l_oX, l_i)); } l_i = 6 - PAD; foreach (int l_iSize, m_oBox->m_oColSizes) { l_i += l_iSize; painter->drawRect(l_oR.translated(l_i, l_oY)); } painter->drawRect(l_oR.translated(l_oX, l_oY)); } painter->restore(); } void box_matrix::mousePressEvent(QGraphicsSceneMouseEvent* e) { m_oLastPressPoint = e->pos(); QRectF l_oR(-10, -10, 8, 8); QRectF l_oR2 = boundingRect(); qreal l_oX = l_oR2.right(); qreal l_oY = l_oR2.bottom(); qreal l_i = 6 - PAD; int i = 0; foreach (int l_iSize, m_oBox->m_oRowSizes) { l_i += l_iSize; if (l_oR.translated(l_oX, l_i).contains(m_oLastPressPoint)) { m_iLastSize = l_iSize; m_iMovingRow = i; m_iMovingCol = -1; setFlags(ItemIsSelectable | ItemSendsGeometryChanges); m_bMoving = true; QGraphicsRectItem::mousePressEvent(e); return; } i += 1; } i = 0; l_i = 6 - PAD; foreach (int l_iSize, m_oBox->m_oColSizes) { l_i += l_iSize; if (l_oR.translated(l_i, l_oY).contains(m_oLastPressPoint)) { m_iLastSize = l_iSize; m_iMovingRow = -1; m_iMovingCol = i; setFlags(ItemIsSelectable | ItemSendsGeometryChanges); m_bMoving = true; QGraphicsRectItem::mousePressEvent(e); return; } i += 1; } if (l_oR.translated(l_oX, l_oY).contains(m_oLastPressPoint)) { m_iMovingRow = m_iMovingCol = -1; setFlags(ItemIsSelectable | ItemSendsGeometryChanges); m_bMoving = true; QGraphicsRectItem::mousePressEvent(e); return; } QGraphicsRectItem::mousePressEvent(e); } void box_matrix::mouseMoveEvent(QGraphicsSceneMouseEvent *e) { if (m_bMoving) { QPointF np = e->pos(); int x = np.x() - m_oLastPressPoint.x(); int y = np.y() - m_oLastPressPoint.y(); if (m_iMovingRow == -1 && m_iMovingCol == -1) { m_iWW = m_oBox->m_iWW + x; if (m_iWW < 2 * GRID) m_iWW = 2 * GRID; m_iWW = grid_int(m_iWW); int l_iWidth = 0; foreach (int l_iSize, m_oBox->m_oColSizes) { l_iWidth += l_iSize; } if (m_iWW < l_iWidth + 2 * GRID) { m_iWW = l_iWidth + 2 * GRID; } m_iHH = m_oBox->m_iHH + y; if (m_iHH < 2 * GRID) m_iHH = 2 * GRID; m_iHH = grid_int(m_iHH); int l_iHeight = 0; foreach (int l_iSize, m_oBox->m_oRowSizes) { l_iHeight += l_iSize; } if (m_iHH < l_iHeight + 2 * GRID) { m_iHH = l_iHeight + 2 * GRID; } setRect(0, 0, m_iWW + 2*PAD, m_iHH + 2*PAD); m_oView->message(m_oView->trUtf8("Last row: %2px, last column: %3px (size: %4 x %5)").arg( QString::number(m_iHH - l_iHeight), QString::number(m_iWW - l_iWidth), QString::number(m_iWW), QString::number(m_iHH) ), 5000); } else if (m_iMovingRow > -1) { int l_iSize = grid_int(m_iLastSize + y); if (l_iSize < 2 * GRID) { l_iSize = 2 * GRID; } m_oBox->m_oRowSizes[m_iMovingRow] = l_iSize; int l_iNewHeight = m_oBox->m_iHH + l_iSize - m_iLastSize; setRect(0, 0, m_oBox->m_iWW + 2 * PAD, l_iNewHeight + 2 * PAD); m_oView->message(m_oView->trUtf8("Row %1: %2px (size: %3 x %4)").arg( QString::number(m_iMovingRow + 1), QString::number(l_iSize), QString::number(m_iWW), QString::number(l_iNewHeight) ), 5000); } else if (m_iMovingCol > -1) { int l_iSize = grid_int(m_iLastSize + x); if (l_iSize < 2 * GRID) { l_iSize = 2 * GRID; } m_oBox->m_oColSizes[m_iMovingCol] = l_iSize; int l_iNewWidth = m_oBox->m_iWW + l_iSize - m_iLastSize; setRect(0, 0, l_iNewWidth + 2 * PAD, m_oBox->m_iHH + 2 * PAD); m_oView->message(m_oView->trUtf8("Column %1: %2px (size: %3 x %4)").arg( QString::number(m_iMovingCol + 1), QString::number(l_iSize), QString::number(l_iNewWidth), QString::number(m_iHH) ), 5000); } m_oChain->setPos(boundingRect().right() + 3, 0); update(); update_links(); } else { QGraphicsRectItem::mouseMoveEvent(e); } } void box_matrix::mouseReleaseEvent(QGraphicsSceneMouseEvent* e) { if (m_bMoving) { m_bMoving = false; setFlags(ItemIsMovable | ItemIsSelectable | ItemSendsGeometryChanges); if (m_iWW != m_oBox->m_iWW || m_iHH != m_oBox->m_iHH) { mem_size_box *mem = new mem_size_box(m_oView->m_oMediator, m_oView->m_iId); mem->prev_values[m_oBox] = QRect(m_oBox->m_iXX, m_oBox->m_iYY, m_oBox->m_iWW, m_oBox->m_iHH); mem->next_values[m_oBox] = QRect(m_oBox->m_iXX, m_oBox->m_iYY, m_iWW, m_iHH); mem->apply(); } else if (m_iMovingRow > -1) { mem_matrix *mem = new mem_matrix(m_oView->m_oMediator, m_oView->m_iId); mem->init(m_oBox); mem->m_oOldRowSizes[m_iMovingRow] = m_iLastSize; mem->m_iNewHH += m_oBox->m_oRowSizes[m_iMovingRow] - m_iLastSize; mem->apply(); } else if (m_iMovingCol > -1) { mem_matrix *mem = new mem_matrix(m_oView->m_oMediator, m_oView->m_iId); mem->init(m_oBox); mem->m_oOldColSizes[m_iMovingCol] = m_iLastSize; mem->m_iNewWW += m_oBox->m_oColSizes[m_iMovingCol] - m_iLastSize; mem->apply(); } } else { QGraphicsRectItem::mouseReleaseEvent(e); } } void box_matrix::update_size() { m_iWW = m_oBox->m_iWW; m_iHH = m_oBox->m_iHH; setRect(0, 0, m_iWW + 2*PAD, m_iHH + 2*PAD); m_oChain->setPos(boundingRect().right() + 3, 0); update_links(); } void box_matrix::properties() { matrix_dialog l_o(m_oView); l_o.m_oRows->setValue(m_oBox->m_oRowSizes.length() + 1); l_o.m_oCols->setValue(m_oBox->m_oColSizes.length() + 1); if (l_o.exec() == QDialog::Accepted) { mem_matrix *mem = new mem_matrix(m_oView->m_oMediator, m_oView->m_iId); mem->init(m_oBox); while (mem->m_oNewRowSizes.size() < l_o.m_oRows->value() - 1) { int l_iTmp = mem->m_iNewHH; foreach (int l_i, mem->m_oNewRowSizes) { l_iTmp -= l_i; } mem->m_oNewRowSizes.push_back(l_iTmp); mem->m_iNewHH += l_iTmp; } while (mem->m_oNewRowSizes.size() > l_o.m_oRows->value() - 1) { mem->m_iNewHH = 0; foreach (int l_i, mem->m_oNewRowSizes) { mem->m_iNewHH += l_i; } mem->m_oNewRowSizes.removeLast(); } while (mem->m_oNewColSizes.size() < l_o.m_oCols->value() - 1) { int l_iTmp = mem->m_iNewWW; foreach (int l_i, mem->m_oNewColSizes) { l_iTmp -= l_i; } mem->m_oNewColSizes.push_back(l_iTmp); mem->m_iNewWW += l_iTmp; } while (mem->m_oNewColSizes.size() > l_o.m_oCols->value() - 1) { mem->m_iNewWW = 0; foreach (int l_i, mem->m_oNewColSizes) { mem->m_iNewWW += l_i; } mem->m_oNewColSizes.removeLast(); } mem->apply(); } } semantik-0.9.5/src/fig/box_matrix.h000664 000000 000000 00000001326 12732552614 017212 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef BOX_MATRIX_H #define BOX_MATRIX_H #include #include #include "res:zable.h" #include "ed:table.h" #include "box_item.h" #include #include "CON.h" #include "con.h" #define OFF 3 class box_matrix : public box_item { public: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); box_matrix(box_view*, int i_iId); void mousePressEvent(QGraphicsSceneMouseEvent* e); void mouseMoveEvent(QGraphicsSceneMouseEvent *e); void mouseReleaseEvent(QGraphicsSceneMouseEvent* e); void update_size(); void properties(); int m_iLastSize; int m_iMovingRow; int m_iMovingCol; }; #endif // BOX_MATRIX_H semantik-0.9.5/src/fig/box_node.cpp000664 000000 000000 00000005410 12732552614 017164 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include #include #include "box_node.h" #include "data_item.h" #include "res:zable.h" #include "box_view.h" #include "box_link.h" #include "sem_mediator.h" #include "mem_box.h" #include #define PAD 2 #define MIN_FORK_SIZE 30 box_node::box_node(box_view* view, int id) : box_item(view, id) { QFont font = doc.defaultFont(); font.setBold(true); doc.setDefaultFont(font); setZValue(90); } void box_node::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->save(); doc.setDefaultFont(scene()->font()); QRectF l_oRect = boundingRect().adjusted(PAD, PAD, -PAD, -PAD); QColor bc(m_oBox->color); painter->setBrush(bc); QPen l_oPen = QPen(Qt::SolidLine); l_oPen.setColor(Qt::black); l_oPen.setCosmetic(false); l_oPen.setWidth(1); if (isSelected()) { l_oPen.setStyle(Qt::DotLine); } painter->setPen(l_oPen); QRectF br = l_oRect.adjusted(0, 10, -10, 0); painter->drawRect(br); painter->setBrush(bc.lighter(GRADVAL)); QPointF pts[4]; pts[0] = br.topLeft(); pts[1] = br.topLeft() + QPointF(10, -10); pts[2] = br.topRight() + QPointF(10, -10); pts[3] = br.topRight(); painter->drawPolygon(pts, 4); painter->setBrush(bc.darker(GRADVAL)); pts[0] = br.topRight(); pts[1] = br.topRight() + QPointF(10, -10); pts[2] = br.bottomRight() + QPointF(10, -10); pts[3] = br.bottomRight(); painter->drawPolygon(pts, 4); if (isSelected()) { l_oPen.setStyle(Qt::SolidLine); painter->setPen(l_oPen); painter->setBrush(QColor("#FFFF00")); QRectF l_oR2(m_iWW - 10 - 8, m_iHH - 8, 6, 6); painter->drawRect(l_oR2); } painter->translate(OFF, OFF + 10); QAbstractTextDocumentLayout::PaintContext ctx; ctx.palette = QApplication::palette("QTextControl"); ctx.palette.setColor(QPalette::Text, Qt::black); // white on black kde themes doc.documentLayout()->draw(painter, ctx); painter->restore(); } void box_node::update_size() { m_iWW = m_oBox->m_iWW; m_iHH = m_oBox->m_iHH; doc.setHtml(QString("
%1
").arg(m_oBox->m_sText)); doc.setTextWidth(m_iWW - 2 * OFF - 20); setRect(0, 0, m_iWW, m_iHH); } void box_node::mousePressEvent(QGraphicsSceneMouseEvent* e) { m_oLastPressPoint = e->pos(); if (m_oLastPressPoint.x() > m_iWW - GRID - 10 && m_oLastPressPoint.x() < m_iWW - 10 && m_oLastPressPoint.y() > m_iHH - GRID) { setFlags(ItemIsSelectable | ItemSendsGeometryChanges); m_bMoving = true; } QGraphicsRectItem::mousePressEvent(e); } semantik-0.9.5/src/fig/box_node.h000664 000000 000000 00000000762 12732552614 016636 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef BOX_NODE_H #define BOX_NODE_H #include #include #include "res:zable.h" #include "ed:table.h" #include "box_item.h" #include "CON.h" #include "con.h" #define OFF 3 class box_node : public box_item { public: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); box_node(box_view*, int i_iId); void update_size(); void mousePressEvent(QGraphicsSceneMouseEvent* e); }; #endif // BOX_NODE_H semantik-0.9.5/src/fig/box_resize_point.cpp000664 000000 000000 00000003707 12732552614 020760 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include "box_resize_point.h" #include "box_view.h" #include "box_resize_point.h" #include "mem_box.h" #include "box_link.h" #include "data_item.h" #include "sem_mediator.h" #include #define PAD 1 box_resize_point::box_resize_point(box_view* i_oView, resizable *i_oR) : QGraphicsRectItem(), m_oParent(i_oR) { setCacheMode(QGraphicsItem::DeviceCoordinateCache); m_oView = i_oView; m_bHeld = false; setZValue(110); m_bForced = false; m_iPosition = 0; setFlags(ItemIsMovable | ItemSendsGeometryChanges); i_oView->scene()->addItem(this); } void box_resize_point::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->save(); QRectF l_oRect = boundingRect().adjusted(PAD, PAD, -PAD, -PAD); QPen l_oPen = QPen(Qt::SolidLine); l_oPen.setColor(Qt::black); l_oPen.setCosmetic(false); l_oPen.setWidth(1); painter->setPen(l_oPen); painter->setBrush(QColor("#FFFF00")); painter->drawRect(l_oRect); painter->restore(); } void box_resize_point::mousePressEvent(QGraphicsSceneMouseEvent* e) { e->accept(); m_oParent->freeze(true); QGraphicsRectItem::mousePressEvent(e); m_bHeld = true; } void box_resize_point::mouseReleaseEvent(QGraphicsSceneMouseEvent* e) { e->accept(); m_oParent->freeze(false); m_oParent->commit_size(this); QGraphicsRectItem::mouseReleaseEvent(e); m_bHeld = false; } QVariant box_resize_point::itemChange(GraphicsItemChange i_oChange, const QVariant &i_oValue) { if (scene()) { if (i_oChange == ItemPositionChange && m_bHeld) { return m_oParent->validate_point(this, i_oValue.toPointF()); } } return QGraphicsItem::itemChange(i_oChange, i_oValue); } semantik-0.9.5/src/fig/box_resize_point.h000664 000000 000000 00000001527 12732552614 020423 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef BOX_RESIZE_H #define BOX_RESIZE_H #include #include #include "CON.h" #include "res:zable.h" #include "con.h" class box_view; class data_item; class data_box; class box_link; class resizable; class box_resize_point : public QGraphicsRectItem { public: box_resize_point(box_view*, resizable*); bool m_bMoveX; int m_iPosition; int m_iOriginalSize; // matrix box_view *m_oView; resizable *m_oParent; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); QPoint m_oRealPosition; QVariant itemChange(GraphicsItemChange i_oChange, const QVariant &i_oValue); void mousePressEvent(QGraphicsSceneMouseEvent* e); void mouseReleaseEvent(QGraphicsSceneMouseEvent* e); bool m_bHeld; private: bool m_bForced; }; #endif // BOX_RESIZE_H semantik-0.9.5/src/fig/box_usecase.cpp000664 000000 000000 00000003644 12732552614 017676 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include "box_usecase.h" #include "data_item.h" #include "res:zable.h" #include "box_view.h" #include "box_link.h" #include "sem_mediator.h" #include "mem_box.h" #include #define PAD 2 #define MIN_FORK_SIZE 30 box_usecase::box_usecase(box_view* view, int id) : box_item(view, id) { QFont font = doc.defaultFont(); font.setPointSize(font.pointSize() - 2); doc.setDefaultFont(font); } void box_usecase::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->save(); QRectF l_oRect = boundingRect().adjusted(PAD, PAD, -PAD, -PAD); QPen l_oPen = QPen(Qt::SolidLine); l_oPen.setColor(Qt::black); l_oPen.setCosmetic(false); l_oPen.setWidth(1); painter->setPen(l_oPen); QColor bc(m_oBox->color); if (m_oView->m_bDisableGradient) { painter->setBrush(bc); } else { QLinearGradient linearGradient(0, 0, l_oRect.width(), 0); linearGradient.setColorAt(0.0, bc); linearGradient.setColorAt(1.0, bc.darker(GRADVAL)); painter->setBrush(linearGradient); } painter->drawEllipse(l_oRect); painter->save(); QAbstractTextDocumentLayout::PaintContext ctx; ctx.palette = QApplication::palette("QTextControl"); ctx.palette.setColor(QPalette::Text, Qt::black); // white on black kde themes QAbstractTextDocumentLayout * lay = doc.documentLayout(); qreal yoff = lay->documentSize().height(); painter->translate(OFF, OFF + (m_iHH - 2 * OFF - yoff) / 2.); lay->draw(painter, ctx); painter->restore(); if (isSelected()) { painter->setBrush(QColor("#FFFF00")); QRectF l_oR2(m_iWW - 8, m_iHH - 8, 6, 6); painter->drawRect(l_oR2); } painter->restore(); } semantik-0.9.5/src/fig/box_usecase.h000664 000000 000000 00000000666 12732552614 017344 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef BOX_USECASE_H #define BOX_USECASE_H #include #include #include "res:zable.h" #include "ed:table.h" #include "box_item.h" #include "CON.h" #include "con.h" #define OFF 3 class box_usecase : public box_item { public: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *); box_usecase(box_view*, int i_iId); }; #endif // BOX_USECASE_H semantik-0.9.5/src/fig/box_view.cpp000664 000000 000000 00000151072 12732552614 017217 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "aux.h" #include "con.h" #include #include "sem_mediator.h" #include "box_item.h" #include "box_dot.h" #include "box_label.h" #include "box_database.h" #include "box_fork.h" #include "box_chain.h" #include "box_link.h" #include "box_component.h" #include "box_node.h" #include "box_decision.h" #include "box_actor.h" #include "box_matrix.h" #include "box_frame.h" #include "box_class.h" #include "data_item.h" #include "box_usecase.h" #include "box_view.h" #include "sembind.h" #include "mem_box.h" #include "box_document_properties.h" #define ALIGN_LEFT 22 #define ALIGN_CENTER 33 #define ALIGN_RIGHT 44 #define ALIGN_TOP 55 #define ALIGN_MIDDLE 66 #define ALIGN_BOTTOM 77 #define SAME_WIDTH 101 #define SAME_HEIGHT 102 #define SAME_WIDTH_HEIGHT 103 #define PIPAD 20 class box_reader : public QXmlDefaultHandler { public: box_reader(box_view*); QString m_sBuf; int m_iVersion; box_view *m_oMediator; data_link *m_oCurrent; int m_iId; bool startElement(const QString&, const QString&, const QString&, const QXmlAttributes&); bool endElement(const QString&, const QString&, const QString&); bool characters(const QString &i_sStr); }; box_reader::box_reader(box_view *i_oControl) { m_oMediator = i_oControl; m_iId = m_oMediator->m_iId; m_oCurrent = NULL; } bool box_reader::startElement(const QString&, const QString&, const QString& i_sName, const QXmlAttributes& i_oAttrs) { if (i_sName == QObject::trUtf8("box_item")) { int id = i_oAttrs.value(QObject::trUtf8("id")).toInt(); data_box *box = new data_box(id); //data_item *item = m_oMediator->m_oMediator->m_oItems[m_iId]; m_oMediator->m_oMediator->m_oItems[m_iId]->m_oBoxes[id] = box; box->m_iXX = i_oAttrs.value(QObject::trUtf8("c1")).toFloat(); box->m_iYY = i_oAttrs.value(QObject::trUtf8("c2")).toFloat(); box->m_sText = i_oAttrs.value(QObject::trUtf8("text")); box->color = i_oAttrs.value(QObject::trUtf8("col")); //l_o->setRect(QRectF(0., 0., i_oAttrs.value(QObject::trUtf8("c3")).toDouble(), i_oAttrs.value(QObject::trUtf8("c4")).toDouble())); } else if (i_sName == QObject::trUtf8("box_link")) { data_link *link = new data_link(); link->m_iParentPos = i_oAttrs.value(QObject::trUtf8("p1")).toInt(); link->m_iParent = i_oAttrs.value(QObject::trUtf8("c1")).toInt(); link->m_iChildPos = i_oAttrs.value(QObject::trUtf8("p2")).toInt(); link->m_iChild = i_oAttrs.value(QObject::trUtf8("c2")).toInt(); if (link->m_iChildPos == 0) link->m_iChildPos = data_link::NORTH; if (link->m_iChildPos == 1) link->m_iChildPos = data_link::WEST; if (link->m_iChildPos == 2) link->m_iChildPos = data_link::SOUTH; if (link->m_iChildPos == 3) link->m_iChildPos = data_link::EAST; if (link->m_iParentPos == 0) link->m_iParentPos = data_link::NORTH; if (link->m_iParentPos == 1) link->m_iParentPos = data_link::WEST; if (link->m_iParentPos == 2) link->m_iParentPos = data_link::SOUTH; if (link->m_iParentPos == 3) link->m_iParentPos = data_link::EAST; link->pen_style = (Qt::PenStyle) i_oAttrs.value(QObject::trUtf8("pen_style")).toInt(); link->border_width = i_oAttrs.value(QObject::trUtf8("border_width")).toInt(); m_oCurrent = link; m_oMediator->m_oMediator->m_oItems.value(m_iId)->m_oLinks.append(link); } else if (i_sName == QObject::trUtf8("box_link_offset")) { if (m_oCurrent) { m_oCurrent->m_oOffsets.append(QPoint(i_oAttrs.value(QObject::trUtf8("x")).toInt(), i_oAttrs.value(QObject::trUtf8("y")).toInt())); } } return true; } bool box_reader::endElement(const QString&, const QString&, const QString& i_sName) { if (i_sName == QObject::trUtf8("box_link")) { m_oCurrent = NULL; } return true; } bool box_reader::characters(const QString &i_s) { m_sBuf += i_s; return true; } box_view::box_view(QWidget *i_oWidget, sem_mediator *i_oControl) : QGraphicsView(i_oWidget) { m_oMediator = i_oControl; m_iId = NO_ITEM; m_bDisableGradient = false; m_bShowFileMenu = false; num_seq = 1111; QGraphicsScene *l_oScene = new QGraphicsScene(this); l_oScene->setSceneRect(-400, -400, 400, 400); setScene(l_oScene); setDragMode(QGraphicsView::RubberBandDrag); //setCacheMode(CacheBackground); setRenderHint(QPainter::Antialiasing); m_oPropertiesAction = new QAction(QObject::trUtf8("Properties..."), this); //m_oPropertiesAction->setShortcut(QObject::trUtf8("Return")); connect(m_oPropertiesAction, SIGNAL(triggered()), this, SLOT(slot_edit_properties())); addAction(m_oPropertiesAction); m_oAddItemAction = new QAction(QObject::trUtf8("Activity"), this); m_oAddItemAction->setShortcut(QObject::trUtf8("Ctrl+Return")); connect(m_oAddItemAction, SIGNAL(triggered()), this, SLOT(slot_add_item())); addAction(m_oAddItemAction); m_oDeleteAction = new QAction(QObject::trUtf8("Delete selection"), this); m_oDeleteAction->setShortcut(QObject::trUtf8("Delete")); connect(m_oDeleteAction, SIGNAL(triggered()), this, SLOT(slot_delete())); addAction(m_oDeleteAction); m_oColorAction = new QAction(QObject::trUtf8("Color..."), this); connect(m_oColorAction, SIGNAL(triggered()), this, SLOT(slot_color())); addAction(m_oColorAction); m_oMoveUpAction = new QAction(QObject::trUtf8("Raise"), this); m_oMoveUpAction->setShortcut(QObject::trUtf8("PgUp")); connect(m_oMoveUpAction, SIGNAL(triggered()), this, SLOT(slot_move_up())); addAction(m_oMoveUpAction); m_oMoveDownAction = new QAction(QObject::trUtf8("Send back"), this); m_oMoveDownAction->setShortcut(QObject::trUtf8("PgDown")); connect(m_oMoveDownAction, SIGNAL(triggered()), this, SLOT(slot_move_down())); addAction(m_oMoveDownAction); m_oAddLabel = new QAction(QObject::trUtf8("Floating text"), this); connect(m_oAddLabel, SIGNAL(triggered()), this, SLOT(slot_add_element())); m_oAddComponent = new QAction(QObject::trUtf8("Component"), this); connect(m_oAddComponent, SIGNAL(triggered()), this, SLOT(slot_add_element())); m_oAddNode = new QAction(QObject::trUtf8("Node"), this); connect(m_oAddNode, SIGNAL(triggered()), this, SLOT(slot_add_element())); m_oAddDecision = new QAction(QObject::trUtf8("Decision"), this); connect(m_oAddDecision, SIGNAL(triggered()), this, SLOT(slot_add_element())); m_oAddDatabase = new QAction(QObject::trUtf8("Database"), this); connect(m_oAddDatabase, SIGNAL(triggered()), this, SLOT(slot_add_element())); m_oAddDotStart = new QAction(QObject::trUtf8("Activity start"), this); connect(m_oAddDotStart, SIGNAL(triggered()), this, SLOT(slot_add_element())); m_oAddDotEnd = new QAction(QObject::trUtf8("Activity end"), this); connect(m_oAddDotEnd, SIGNAL(triggered()), this, SLOT(slot_add_element())); m_oAddParallelHorizontal = new QAction(QObject::trUtf8("Horizontal fork/join"), this); connect(m_oAddParallelHorizontal, SIGNAL(triggered()), this, SLOT(slot_add_element())); m_oAddParallelVertical = new QAction(QObject::trUtf8("Vertical fork/join"), this); connect(m_oAddParallelVertical, SIGNAL(triggered()), this, SLOT(slot_add_element())); m_oAddActor = new QAction(QObject::trUtf8("Actor"), this); connect(m_oAddActor, SIGNAL(triggered()), this, SLOT(slot_add_element())); m_oAddUsecase = new QAction(QObject::trUtf8("Usecase"), this); connect(m_oAddUsecase, SIGNAL(triggered()), this, SLOT(slot_add_element())); m_oAddMatrix = new QAction(QObject::trUtf8("Matrix"), this); connect(m_oAddMatrix, SIGNAL(triggered()), this, SLOT(slot_add_element())); m_oAddFrame = new QAction(QObject::trUtf8("Boundary"), this); connect(m_oAddFrame, SIGNAL(triggered()), this, SLOT(slot_add_element())); m_oAddClass = new QAction(QObject::trUtf8("Class"), this); connect(m_oAddClass, SIGNAL(triggered()), this, SLOT(slot_add_element())); m_oFileImport = new QAction(QObject::trUtf8("Import from file..."), this); connect(m_oFileImport, SIGNAL(triggered()), this, SLOT(slot_import_from_file())); m_oFileExport = new QAction(QObject::trUtf8("Export to file..."), this); connect(m_oFileExport, SIGNAL(triggered()), this, SLOT(slot_export_to_file())); m_oCopyToClipboard = new QAction(QObject::trUtf8("Copy image to clipboard"), this); connect(m_oCopyToClipboard, SIGNAL(triggered()), this, SLOT(slot_copy_picture())); m_oColorAction->setEnabled(false); m_oLastMovePoint = QPointF(-100, -100); m_oCurrent = NULL; m_bPressed = false; m_bScroll = false; setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); m_oMenu = NULL; } void box_view::init_menu() { m_oMenu = new QMenu(this); if (m_bShowFileMenu) { m_oFileMenu = m_oMenu->addMenu(QObject::trUtf8("File operations")); m_oFileMenu->addAction(m_oFileImport); m_oFileMenu->addAction(m_oFileExport); m_oFileMenu->addAction(m_oCopyToClipboard); m_oMenu->addSeparator(); } m_oMenu->addAction(m_oAddLabel); m_oMenu->addAction(m_oAddItemAction); m_oMenu->addAction(m_oAddComponent); m_oMenu->addAction(m_oAddNode); m_oAddBoxMenu = m_oMenu->addMenu(QObject::trUtf8("More elements")); m_oAddBoxMenu->addAction(m_oAddDotStart); m_oAddBoxMenu->addAction(m_oAddDotEnd); m_oAddBoxMenu->addAction(m_oAddParallelHorizontal); m_oAddBoxMenu->addAction(m_oAddParallelVertical); m_oAddBoxMenu->addAction(m_oAddDecision); m_oAddBoxMenu->addAction(m_oAddActor); m_oAddBoxMenu->addAction(m_oAddUsecase); m_oAddBoxMenu->addAction(m_oAddMatrix); m_oAddBoxMenu->addAction(m_oAddFrame); m_oAddBoxMenu->addAction(m_oAddClass); m_oAddBoxMenu->addAction(m_oAddDatabase); //m_oMenu->addAction(m_oEditAction); m_oMenu->addAction(m_oDeleteAction); m_oMenu->addAction(m_oMoveUpAction); m_oMenu->addAction(m_oMoveDownAction); QAction *l_o; /* m_oWidthMenu = m_oMenu->addMenu(QObject::trUtf8("Connection width")); m_oWidthGroup = new QActionGroup(this); l_o = m_oWidthMenu->addAction(QObject::trUtf8("1px")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_penwidth())); addAction(l_o); l_o->setData(QVariant(1)); m_oWidthGroup->addAction(l_o); l_o = m_oWidthMenu->addAction(QObject::trUtf8("2px")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_penwidth())); addAction(l_o); l_o->setData(QVariant(2)); m_oWidthGroup->addAction(l_o); l_o = m_oWidthMenu->addAction(QObject::trUtf8("3px")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_penwidth())); addAction(l_o); l_o->setData(QVariant(3)); m_oWidthGroup->addAction(l_o); m_oStyleMenu = m_oMenu->addMenu(QObject::trUtf8("Connection style")); m_oStyleGroup = new QActionGroup(this); l_o = m_oStyleMenu->addAction(QObject::trUtf8("solid line")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_penstyle())); addAction(l_o); l_o->setData(QVariant(Qt::SolidLine)); m_oStyleGroup->addAction(l_o); l_o = m_oStyleMenu->addAction(QObject::trUtf8("dot line")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_penstyle())); addAction(l_o); l_o->setData(QVariant(Qt::DotLine)); m_oStyleGroup->addAction(l_o); l_o = m_oStyleMenu->addAction(QObject::trUtf8("dash line")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_penstyle())); addAction(l_o); l_o->setData(QVariant(Qt::DashLine)); m_oStyleGroup->addAction(l_o); */ m_oMenu->addSeparator(); m_oAlignMenu = m_oMenu->addMenu(QObject::trUtf8("Alignment")); m_oAlignGroup = new QActionGroup(this); l_o = m_oAlignMenu->addAction(QObject::trUtf8("Align left")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_align())); addAction(l_o); l_o->setData(QVariant(ALIGN_LEFT)); m_oAlignGroup->addAction(l_o); l_o = m_oAlignMenu->addAction(QObject::trUtf8("Align center")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_align())); addAction(l_o); l_o->setData(QVariant(ALIGN_CENTER)); m_oAlignGroup->addAction(l_o); l_o = m_oAlignMenu->addAction(QObject::trUtf8("Align right")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_align())); addAction(l_o); l_o->setData(QVariant(ALIGN_RIGHT)); m_oAlignGroup->addAction(l_o); l_o = m_oAlignMenu->addAction(QObject::trUtf8("Align top")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_align())); addAction(l_o); l_o->setData(QVariant(ALIGN_TOP)); m_oAlignGroup->addAction(l_o); l_o = m_oAlignMenu->addAction(QObject::trUtf8("Align middle")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_align())); addAction(l_o); l_o->setData(QVariant(ALIGN_MIDDLE)); m_oAlignGroup->addAction(l_o); l_o = m_oAlignMenu->addAction(QObject::trUtf8("Align bottom")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_align())); addAction(l_o); l_o->setData(QVariant(ALIGN_BOTTOM)); m_oAlignGroup->addAction(l_o); m_oSizeMenu = m_oMenu->addMenu(QObject::trUtf8("Size")); m_oSizeGroup = new QActionGroup(this); l_o = m_oSizeMenu->addAction(QObject::trUtf8("Same width")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_size())); addAction(l_o); l_o->setData(QVariant(SAME_WIDTH)); m_oSizeGroup->addAction(l_o); l_o = m_oSizeMenu->addAction(QObject::trUtf8("Same height")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_size())); addAction(l_o); l_o->setData(QVariant(SAME_HEIGHT)); m_oSizeGroup->addAction(l_o); l_o = m_oSizeMenu->addAction(QObject::trUtf8("Same width and height")); connect(l_o, SIGNAL(triggered()), this, SLOT(slot_size())); addAction(l_o); l_o->setData(QVariant(SAME_WIDTH_HEIGHT)); m_oSizeGroup->addAction(l_o); m_oAddItemAction->setEnabled(false); m_oDeleteAction->setEnabled(false); //m_oEditAction->setEnabled(false); //m_oMoveUpAction->setEnabled(false); //m_oMoveDownAction->setEnabled(false); m_oMenu->addSeparator(); m_oMenu->addAction(m_oColorAction); m_oMenu->addAction(m_oPropertiesAction); } box_view::~box_view() { } void box_view::resizeEvent(QResizeEvent* e) { QGraphicsView::resizeEvent(e); QRect l_oRect = viewport()->rect(); QRectF ar = QRectF(mapToScene(l_oRect.topLeft()), mapToScene(l_oRect.bottomRight())); QRectF br = scene()->itemsBoundingRect(); br = br.united(ar); scene()->setSceneRect(br); } void box_view::notify_add_item(int id) { m_iId = id; setEnabled(true); } void box_view::notify_edit_box(int id, int bid) { Q_ASSERT(id == m_iId); box_item *item = (box_item*) m_oItems.value(bid); // TODO Q_ASSERT(item != NULL); item->update_data(); } void box_view::notify_select(const QList& unsel, const QList& sel) { clear_diagram(); if (sel.size() != 1) { m_iId = NO_ITEM; setEnabled(false); //m_oEditAction->setEnabled(false); //m_oCancelEditAction->setEnabled(false); } else { m_iId = sel.at(0); data_item *l_oData = m_oMediator->m_oItems.value(m_iId); Q_ASSERT(l_oData); if (l_oData and l_oData->m_iDataType == VIEW_DIAG) { if (!l_oData->m_sDiag.isEmpty()) { from_string(l_oData->m_sDiag); l_oData->m_sDiag = notr(""); } sync_view(); check_canvas_size(); } setEnabled(true); } } void box_view::sync_view() { if (!m_iId) return; data_item *item = m_oMediator->m_oItems.value(m_iId); Q_ASSERT(item); scene()->setFont(item->m_oDiagramFont); if (item->m_iDataType != VIEW_DIAG) { return; } if (!item->m_sDiag.isEmpty()) { from_string(item->m_sDiag); item->m_sDiag = ""; } foreach (data_box *box, item->m_oBoxes.values()) { connectable *l_o = NULL; if (box->m_iType == data_box::ACTIVITY) { l_o = new box_item(this, box->m_iId); } else if (box->m_iType == data_box::LABEL) { l_o = new box_label(this, box->m_iId); } else if (box->m_iType == data_box::ACTOR) { l_o = new box_actor(this, box->m_iId); } else if (box->m_iType == data_box::USECASE) { l_o = new box_usecase(this, box->m_iId); } else if (box->m_iType == data_box::COMPONENT) { l_o = new box_component(this, box->m_iId); } else if (box->m_iType == data_box::NODE) { l_o = new box_node(this, box->m_iId); } else if (box->m_iType == data_box::DECISION) { l_o = new box_decision(this, box->m_iId); } else if (box->m_iType == data_box::ACTIVITY_START) { l_o = new box_dot(this, box->m_iId); } else if (box->m_iType == data_box::ACTIVITY_PARALLEL) { l_o = new box_fork(this, box->m_iId); } else if (box->m_iType == data_box::MATRIX) { l_o = new box_matrix(this, box->m_iId); } else if (box->m_iType == data_box::FRAME) { l_o = new box_frame(this, box->m_iId); } else if (box->m_iType == data_box::CLASS) { l_o = new box_class(this, box->m_iId); } else if (box->m_iType == data_box::DATABASE) { l_o = new box_database(this, box->m_iId); } else { Q_ASSERT(false); } m_oItems[box->m_iId] = l_o; (dynamic_cast (l_o))->setPos(QPointF(box->m_iXX, box->m_iYY)); l_o->update_data(); } foreach (data_link *link, item->m_oLinks) { box_link *l_o = new box_link(this); l_o->m_oInnerLink.copy_from(*link); l_o->m_oLink = link; l_o->update_pos(); m_oLinks.append(l_o); } } void box_view::notify_export_item(int id) { int l_iOldId = m_iId; if (m_oMediator->m_oItems.value(id)->m_iDataType != VIEW_DIAG) return; clear_diagram(); m_iId = id; sync_view(); QRectF l_oRect; foreach (QGraphicsItem*it, scene()->items()) { if (it->isVisible()) { if (l_oRect.width() < 1) { l_oRect = it->boundingRect(); l_oRect.translate(it->pos()); } else { QRectF tmp = it->boundingRect(); tmp.translate(it->pos()); l_oRect = l_oRect.united(tmp); } } it->setCacheMode(QGraphicsItem::NoCache); // the magic happens here } l_oRect = l_oRect.adjusted(-15, -15, 15, 15); QRectF l_oR(0, 0, l_oRect.width(), l_oRect.height()); QPair p = m_oMediator->hint_size_diagram(id); if (p.first != 0) { l_oR.setWidth(p.first); if (p.second == 0) { l_oR.setHeight((p.first * l_oRect.height()) / (double) l_oRect.width()); } } if (p.second != 0) { l_oR.setHeight(p.second); if (p.first == 0) { l_oR.setWidth((p.second * l_oRect.width()) / (double) l_oRect.height()); } } data_item *item = m_oMediator->m_oItems.value(m_iId); item->m_iObjectWidthHint = l_oR.width(); item->m_iObjectHeightHint = l_oR.height(); // fill with white QImage l_oImage((int) l_oR.width(), (int) l_oR.height(), QImage::Format_RGB32); l_oImage.fill(qRgb(255,255,255)); Qt::AspectRatioMode rat = (p.first == 0 || p.second == 0) ? Qt::KeepAspectRatio : Qt::IgnoreAspectRatio; QPainter l_oP; if (l_oP.begin(&l_oImage)) { l_oP.setRenderHints(QPainter::Antialiasing); scene()->render(&l_oP, l_oR, l_oRect, rat); l_oP.end(); } l_oImage.save(QString(m_oMediator->m_sTempDir + QString("/") + QString("diag-%1.png")).arg(QString::number(m_iId))); QPrinter l_oPrinter; //l_oPrinter.setResolution(QPrinter::HighResolution); l_oPrinter.setOrientation(QPrinter::Portrait); l_oPrinter.setOutputFormat(QPrinter::PdfFormat); l_oPrinter.setPaperSize(l_oR.size(), QPrinter::DevicePixel); l_oPrinter.setPageMargins(0, 0, 0, 0, QPrinter::DevicePixel); l_oPrinter.setOutputFileName(QString(m_oMediator->m_sTempDir + QString("/") + QString("diag-%1.pdf")).arg(QString::number(m_iId))); QPainter l_oPdf; if (l_oPdf.begin(&l_oPrinter)) { m_bDisableGradient = true; scene()->render(&l_oPdf, l_oR, l_oRect, rat); l_oPdf.end(); m_bDisableGradient = false; } // and the svg for html/openoffice QSvgGenerator l_oGenerator; l_oGenerator.setFileName(QString(m_oMediator->m_sTempDir + QString("/") + QString("diag-%1.svg")).arg(QString::number(m_iId))); l_oGenerator.setSize(QSize(l_oR.width(), l_oR.height())); l_oGenerator.setViewBox(l_oR); l_oGenerator.setResolution(QX11Info().appDpiX()); l_oGenerator.setTitle(trUtf8("Semantik diagram")); QPainter l_oSvg; if (l_oSvg.begin(&l_oGenerator)) { l_oSvg.setRenderHints(QPainter::Antialiasing); scene()->render(&l_oSvg, l_oR, l_oRect, rat); l_oSvg.end(); } clear_diagram(); m_iId = l_iOldId; if (m_iId != NO_ITEM) { sync_view(); } } void box_view::slot_delete() { QList boxes; QSet links; foreach (QGraphicsItem* el, scene()->selectedItems()) { if (box_link *l = dynamic_cast(el)) { links << l->m_oLink; Q_ASSERT(l->m_oLink); } else if (connectable* c = dynamic_cast(el)) { data_box *b = c->m_oBox; boxes.append(b); foreach (box_link* l, m_oLinks) { if (l->m_oLink->m_iParent == b->m_iId || l->m_oLink->m_iChild == b->m_iId) { links << l->m_oLink; } } } } if (boxes.size() > 0 || links.size() > 0) { mem_del_box *del = new mem_del_box(m_oMediator, m_iId); del->init(boxes, links.toList()); del->apply(); } } void box_view::enable_menu_actions() { QList selection = scene()->selectedItems(); int selected = selection.size(); m_oAddItemAction->setEnabled(selected <= 1); m_oDeleteAction->setEnabled(selected >= 1); m_oColorAction->setEnabled(selected >= 1); m_oPropertiesAction->setEnabled(selected == 0 or (selected == 1 and dynamic_cast(selection.at(0)))); m_oSizeMenu->setEnabled(selected > 1); foreach(QAction* l_o, m_oSizeGroup->actions()) { l_o->setEnabled(selected >= 1); } /*m_oWidthMenu->setEnabled(selected >= 1 and dynamic_cast(selection.at(0))); foreach(QAction* l_o, m_oWidthGroup->actions()) { l_o->setEnabled(selected >= 1); } m_oStyleMenu->setEnabled(selected >= 1 and dynamic_cast(selection.at(0))); foreach(QAction* l_o, m_oStyleGroup->actions()) { l_o->setEnabled(selected >= 1); }*/ m_oAlignMenu->setEnabled(selected > 1); foreach(QAction* l_o, m_oAlignGroup->actions()) { l_o->setEnabled(selected > 1); } } void box_view::enable_actions() { foreach (QAction* l_o, actions()) { l_o->setEnabled(true); // TODO we could disable the move actions one by one } enable_menu_actions(); } void box_view::slot_add_item() { foreach(QGraphicsItem *l_o, scene()->items()) { l_o->setSelected(false); } mem_add_box *add = new mem_add_box(m_oMediator, m_iId, next_seq()); add->box->m_iXX = m_oLastPoint.x() - 20; add->box->m_iYY = m_oLastPoint.y() - 20; add->box->m_iWW = 80; add->apply(); box_item *l_o = (box_item*) m_oItems.value(add->box->m_iId); l_o->setSelected(true); // l_o->setPos(m_oLastPoint - QPointF(l_oRect.width()/2, l_oRect.height()/2)); // TODO } void box_view::change_colors(QAction* i_oAct) { if (!hasFocus()) return; if (scene()->selectedItems().size() < 1) return; QColor l_oColor; static QColor selected_color; for (int i=1; i < i_oAct->actionGroup()->actions().size(); ++i) { if (i_oAct->actionGroup()->actions()[i] == i_oAct) { if (i == i_oAct->actionGroup()->actions().size()-1) { selected_color = QColorDialog::getColor(selected_color, this); if (!selected_color.isValid()) { return; } l_oColor = selected_color; } else { selected_color = l_oColor = m_oMediator->m_oColorSchemes[i].m_oInnerColor; } break; } } mem_prop_box *mem = new mem_prop_box(m_oMediator, m_iId); foreach (QGraphicsItem *l_o, scene()->selectedItems()) { if (box_link *k = dynamic_cast(l_o)) { mem->items.append(k->m_oLink); } else if (connectable* t = dynamic_cast(l_o)) { mem->items.append(t->m_oBox); } } mem->change_type = CH_COLOR; mem->new_props.color = l_oColor; mem->apply(); } void box_view::slot_color() { if (scene()->selectedItems().size() < 1) return; QColor l_oColor = QColorDialog::getColor(Qt::white, this); if (!l_oColor.isValid()) return; mem_prop_box *mem = new mem_prop_box(m_oMediator, m_iId); foreach (QGraphicsItem *l_o, scene()->selectedItems()) { if (box_link *k = dynamic_cast(l_o)) { mem->items.append(k->m_oLink); } else if (connectable *k = dynamic_cast(l_o)) { mem->items.append(k->m_oBox); } } mem->change_type = CH_COLOR; mem->new_props.color = l_oColor; mem->apply(); } void box_view::slot_penstyle() { int l_i = ((QAction*) QObject::sender())->data().toInt(); mem_prop_box *mem = new mem_prop_box(m_oMediator, m_iId); foreach (QGraphicsItem* l_o, scene()->selectedItems()) { if (box_link *k = dynamic_cast(l_o)) { mem->items.append(k->m_oLink); } } mem->change_type = CH_PENST; mem->new_props.pen_style = (Qt::PenStyle) l_i; mem->apply(); } void box_view::slot_add_element() { QAction *sender = (QAction*) QObject::sender(); mem_add_box *add = new mem_add_box(m_oMediator, m_iId, next_seq()); add->box->m_iXX = GRID * (int) (m_oLastPoint.x() / GRID); add->box->m_iYY = GRID * (int) (m_oLastPoint.y() / GRID); if (sender == m_oAddDotStart || sender == m_oAddDotEnd) { add->box->m_iHH = 20; add->box->m_iWW = 20; } else if (sender == m_oAddParallelVertical) { add->box->m_iWW = FORK_WIDTH; add->box->m_iHH = FORK_LENGTH; add->box->m_bIsVertical = true; } else if (sender == m_oAddParallelHorizontal) { add->box->m_iHH = FORK_WIDTH; add->box->m_iWW = FORK_LENGTH; add->box->m_bIsVertical = false; } add->box->m_bIsEnd = sender == m_oAddDotEnd; if (sender == m_oAddDotEnd || sender == m_oAddDotStart) { add->box->m_iType = data_box::ACTIVITY_START; add->box->color = QColor(Qt::black); } if (sender == m_oAddParallelHorizontal || sender == m_oAddParallelVertical) { add->box->m_iType = data_box::ACTIVITY_PARALLEL; add->box->color = QColor(Qt::black); } if (sender == m_oAddLabel) { add->box->m_iType = data_box::LABEL; add->box->m_iWW = 60; add->box->m_iHH = 30; add->box->m_sText = QString("..."); } else if (sender == m_oAddActor) { add->box->m_iType = data_box::ACTOR; add->box->m_iWW = 30; add->box->m_iHH = 70; } else if (sender == m_oAddUsecase) { add->box->m_iType = data_box::USECASE; add->box->m_iWW = 100; add->box->m_iHH = 50; } else if (sender == m_oAddComponent) { add->box->m_iType = data_box::COMPONENT; add->box->m_iWW = 120; add->box->m_iHH = 60; add->box->color = QColor("#FFFFCC"); } else if (sender == m_oAddNode) { add->box->m_iType = data_box::NODE; add->box->m_iWW = 180; add->box->m_iHH = 180; add->box->color = QColor("#FFFFCC"); } else if (sender == m_oAddDecision) { add->box->m_iType = data_box::DECISION; add->box->m_iWW = 40; add->box->m_iHH = 40; } else if (sender == m_oAddMatrix) { add->box->m_iType = data_box::MATRIX; add->box->m_iWW = 510; add->box->m_iHH = 320; add->box->m_oRowSizes.push_back(160); add->box->m_oColSizes.push_back(170); add->box->m_oColSizes.push_back(170); } else if (sender == m_oAddFrame) { add->box->m_iType = data_box::FRAME; add->box->m_iWW = 510; add->box->m_iHH = 320; } else if (sender == m_oAddDatabase) { add->box->m_iType = data_box::DATABASE; add->box->color = QColor("#FCF2E2"); add->box->m_iWW = 60; add->box->m_iHH = 90; } else if (sender == m_oAddClass) { add->box->m_iType = data_box::CLASS; add->box->color = QColor("#FCF2E2"); add->box->m_iWW = 70; add->box->m_iHH = 30; add->box->m_sText = "MyClass"; add->box->m_sStereotype = "entity"; add->box->m_bStatic = false; add->box->m_bAbstract = false; { data_box_method l_o; l_o.m_oVisibility = visibility::PUBLIC; l_o.m_sText = "hello() : void"; l_o.m_bStatic = false; l_o.m_bAbstract = false; add->box->m_oMethods.push_back(l_o); } { data_box_attribute l_o; l_o.m_oVisibility = visibility::PUBLIC; l_o.m_bStatic = false; l_o.m_sText = "id: int"; add->box->m_oAttributes.push_back(l_o); } } add->apply(); QGraphicsItem *l_o = dynamic_cast(m_oItems.value(add->box->m_iId)); l_o->setSelected(true); } void box_view::slot_penwidth() { int l_i = ((QAction*) QObject::sender())->data().toInt(); mem_prop_box *mem = new mem_prop_box(m_oMediator, m_iId); foreach (QGraphicsItem* l_o, scene()->selectedItems()) { if (box_link *k = dynamic_cast(l_o)) { mem->items.append(k->m_oLink); } } mem->change_type = CH_BORDER; mem->new_props.border_width = l_i; mem->apply(); } void box_view::slot_edit_properties() { QList l_o = scene()->selectedItems(); if (l_o.length() == 1) { if (editable*e = dynamic_cast(l_o.at(0))) { e->properties(); } } else if (l_o.length() == 0) { box_document_properties l_oProps(this); l_oProps.exec(); } } #if 0 void box_view::slot_toggle_edit() { if (!hasFocus()) { return; } box_item* sel = NULL; foreach (QGraphicsItem *tmp, items()) { box_item* k; if (tmp->isSelected() && (k = dynamic_cast(tmp))) { if (sel) { sel = NULL; break; } else { sel = k; } } } if (sel) { if (sel->textInteractionFlags() & Qt::TextEditorInteraction) { sel->setTextInteractionFlags(Qt::NoTextInteraction); /*if (sel->toPlainText() == QObject::trUtf8("")) { sel->setPlainText(QObject::trUtf8("Empty")); sel->update(); // seems to update faster //sel->update_links(); }*/ if (sel->toPlainText() != m_oMediator->m_oItems[m_iId]->m_oBoxes[sel->m_iId]->m_sText) { mem_edit_box *ed = new mem_edit_box(m_oMediator, m_iId, sel->m_iId); ed->newText = sel->toPlainText(); ed->apply(); } } else { sel->setTextInteractionFlags(Qt::TextEditorInteraction); sel->setFocus(); m_oAddItemAction->setEnabled(false); m_oDeleteAction->setEnabled(false); m_oCancelEditAction->setEnabled(true); /* m_oInsertSiblingAction->setEnabled(false); m_oNextRootAction->setEnabled(false); m_oMoveUpAction->setEnabled(false); m_oMoveDownAction->setEnabled(false); m_oMoveLeftAction->setEnabled(false); m_oMoveRightAction->setEnabled(false); m_oSelectUpAction->setEnabled(false); m_oSelectDownAction->setEnabled(false); m_oSelectLeftAction->setEnabled(false); m_oSelectRightAction->setEnabled(false); m_oMediator->check_undo(false); */ return; } } m_oAddItemAction->setEnabled(true); m_oDeleteAction->setEnabled(true); m_oCancelEditAction->setEnabled(false); /* m_oInsertSiblingAction->setEnabled(true); m_oNextRootAction->setEnabled(true); m_oMoveUpAction->setEnabled(true); m_oMoveDownAction->setEnabled(true); m_oMoveLeftAction->setEnabled(true); m_oMoveRightAction->setEnabled(true); m_oSelectUpAction->setEnabled(true); m_oSelectDownAction->setEnabled(true); m_oSelectLeftAction->setEnabled(true); m_oSelectRightAction->setEnabled(true); m_oMediator->check_undo(true); */ } void box_view::slot_cancel_edit() { //qDebug()<<"slot cancel edit"; box_item* sel = NULL; foreach (QGraphicsItem *tmp, items()) { box_item *k; if (tmp->isSelected() && (k = dynamic_cast(tmp))) { if (sel) { sel = NULL; break; } else { sel = k; } } } if (sel && sel->textInteractionFlags() & Qt::TextEditorInteraction) { //qDebug()<<"cancel edit!"<setTextInteractionFlags(Qt::NoTextInteraction); sel->update_data(); } m_oAddItemAction->setEnabled(true); m_oDeleteAction->setEnabled(true); } #endif void box_view::slot_move_up() { foreach (QGraphicsItem *l_oItem, scene()->selectedItems()) { l_oItem->setZValue(l_oItem->zValue()+1); } } void box_view::slot_move_down() { foreach (QGraphicsItem *l_oItem, scene()->selectedItems()) { l_oItem->setZValue(l_oItem->zValue()-1); } } void box_view::from_string(const QString &i_s) { box_reader l_oHandler(this); QXmlInputSource l_oSource; l_oSource.setData(i_s); QXmlSimpleReader l_oReader; l_oReader.setContentHandler(&l_oHandler); if (!l_oReader.parse(l_oSource)) { //qDebug()<<"parse error!!"; clear_diagram(); } } void box_view::clear_diagram() { foreach (box_link *l_o, m_oLinks) { scene()->removeItem(l_o); delete l_o; } m_oLinks.clear(); foreach (connectable *l_o, m_oItems.values()) { scene()->removeItem(dynamic_cast(l_o)); delete l_o; } m_oItems.clear(); } void box_view::check_canvas_size() { QRectF br = scene()->itemsBoundingRect(); br.adjust(-GAP, -GAP, GAP, GAP); br = br.united(scene()->sceneRect()); scene()->setSceneRect(br); } void box_view::focusInEvent(QFocusEvent *i_oEv) { QGraphicsView::focusInEvent(i_oEv); m_oMediator->notify_focus(this); } void box_view::focusOutEvent(QFocusEvent *i_oEv) { QGraphicsView::focusOutEvent(i_oEv); } void box_view::notify_add_box(int id, int box) { Q_ASSERT(m_iId == id); data_item *item = m_oMediator->m_oItems.value(m_iId); data_box *db = item->m_oBoxes[box]; connectable *l_o = NULL; if (db->m_iType == data_box::ACTIVITY) { l_o = new box_item(this, box); } else if (db->m_iType == data_box::LABEL) { l_o = new box_label(this, box); } else if (db->m_iType == data_box::ACTOR) { l_o = new box_actor(this, box); } else if (db->m_iType == data_box::USECASE) { l_o = new box_usecase(this, box); } else if (db->m_iType == data_box::COMPONENT) { l_o = new box_component(this, box); } else if (db->m_iType == data_box::NODE) { l_o = new box_node(this, box); } else if (db->m_iType == data_box::DECISION) { l_o = new box_decision(this, box); } else if (db->m_iType == data_box::ACTIVITY_START) { l_o = new box_dot(this, box); } else if (db->m_iType == data_box::MATRIX) { l_o = new box_matrix(this, box); } else if (db->m_iType == data_box::FRAME) { l_o = new box_frame(this, box); } else if (db->m_iType == data_box::CLASS) { l_o = new box_class(this, box); } else if (db->m_iType == data_box::ACTIVITY_PARALLEL) { l_o = new box_fork(this, box); } else if (db->m_iType == data_box::DATABASE) { l_o = new box_database(this, box); } Q_ASSERT(l_o != NULL); m_oItems[box] = l_o; l_o->update_data(); } void box_view::notify_del_box(int id, int box) { connectable *l_o = m_oItems.value(box); Q_ASSERT(l_o!=NULL); scene()->removeItem(dynamic_cast(l_o)); m_oItems.remove(box); delete l_o; } void box_view::notify_link_box(int id, data_link* link) { box_link *l_o = m_oCurrent; if (!l_o) { l_o = new box_link(this); } m_oLinks.push_back(l_o); l_o->m_oInnerLink.copy_from(*link); l_o->m_oLink = link; l_o->update_pos(); } void box_view::notify_unlink_box(int id, data_link* link) { Q_ASSERT(!m_oCurrent); foreach (box_link *cur, m_oLinks) { if (cur->m_oLink == link) { delete cur; m_oLinks.removeAll(cur); break; } } } void box_view::notify_change_link_box(int id, data_link*link) { foreach (box_link *cur, m_oLinks) { if (cur->m_oLink == link) { cur->m_oInnerLink.copy_from(*cur->m_oLink); cur->update_pos(); break; } } } void box_view::wheelEvent(QWheelEvent *i_oEvent) { QPointF l_o = mapToScene(i_oEvent->pos()); qreal i_iScaleFactor = pow(2.0, i_oEvent->delta() / 440.0); qreal i_rFactor = matrix().scale(i_iScaleFactor, i_iScaleFactor).mapRect(QRectF(0, 0, 1, 1)).width(); if (i_rFactor < 0.01 || i_rFactor > 1000) return; if (scene()->selectedItems().size()) { QRectF l_oRect = scene()->selectedItems().at(0)->sceneBoundingRect(); foreach (QGraphicsItem *l_o, scene()->selectedItems()) { l_oRect |= l_o->sceneBoundingRect(); } l_oRect = QRectF(l_oRect.topLeft() - QPointF(10, 10), l_oRect.bottomRight() + QPointF(10, 10)); QRectF l_oViewRect = viewport()->rect(); QRectF l_oNewRect = matrix().scale(i_iScaleFactor, i_iScaleFactor).mapRect(l_oRect); if (l_oNewRect.width() > l_oViewRect.width() or l_oNewRect.height() > l_oViewRect.height()) { return; } scale(i_iScaleFactor, i_iScaleFactor); centerOn(l_o + mapToScene(viewport()->rect().center()) - mapToScene(i_oEvent->pos())); ensureVisible(l_oRect, 5, 5); } else { QRectF l_oRect = scene()->itemsBoundingRect(); l_oRect = QRectF(l_oRect.topLeft() - QPointF(PIPAD, PIPAD), l_oRect.bottomRight() + QPointF(PIPAD, PIPAD)); l_oRect = matrix().scale(i_iScaleFactor, i_iScaleFactor).mapRect(l_oRect); QRectF l_oViewRect = viewport()->rect(); if (i_rFactor < 1 and i_iScaleFactor < 1 and 1.1 * l_oRect.width() < l_oViewRect.width() and 1.1 * l_oRect.height() < l_oViewRect.height()) { ensureVisible(scene()->itemsBoundingRect(), 10, 10); return; } scale(i_iScaleFactor, i_iScaleFactor); centerOn(l_o + mapToScene(viewport()->rect().center()) - mapToScene(i_oEvent->pos())); } } void box_view::fit_zoom() { if (scene()->selectedItems().size()) { QRectF l_oRect = scene()->selectedItems().at(0)->sceneBoundingRect(); foreach (QGraphicsItem *l_o, scene()->selectedItems()) { l_oRect |= l_o->sceneBoundingRect(); } l_oRect = QRectF(l_oRect.topLeft() - QPointF(PIPAD, PIPAD), l_oRect.bottomRight() + QPointF(PIPAD, PIPAD)); fitInView(l_oRect, Qt::KeepAspectRatio); } else { fitInView(scene()->sceneRect(), Qt::KeepAspectRatio); } } void box_view::keyPressEvent(QKeyEvent *i_oEvent) { if (i_oEvent->key() == Qt::Key_Enter || i_oEvent->key() == Qt::Key_Return) { slot_edit_properties(); } QGraphicsView::keyPressEvent(i_oEvent); } void box_view::keyReleaseEvent(QKeyEvent *i_oEvent) { QGraphicsView::keyReleaseEvent(i_oEvent); setCursor(Qt::ArrowCursor); } void box_view::slot_size() { if (scene()->selectedItems().size() < 2) return; int l_i = ((QAction*) QObject::sender())->data().toInt(); int w = 0; int h = 0; foreach (QGraphicsItem* l_oItem, scene()->selectedItems()) { if (connectable* c = dynamic_cast(l_oItem)) { QRectF r = c->rect(); if ((l_i == SAME_WIDTH || l_i == SAME_WIDTH_HEIGHT) && r.width() > w) { w = r.width(); } if ((l_i == SAME_HEIGHT || l_i == SAME_WIDTH_HEIGHT) && r.height() > h) { h = r.height(); } } } mem_size_box *mem = new mem_size_box(m_oMediator, m_iId); foreach (QGraphicsItem* l_oItem, scene()->selectedItems()) { if (connectable* c = dynamic_cast(l_oItem)) { data_box *box = c->m_oBox; mem->prev_values[box] = QRect(box->m_iXX, box->m_iYY, box->m_iWW, box->m_iHH); mem->next_values[box] = QRect(box->m_iXX, box->m_iYY, w, h); } } mem->apply(); } void box_view::slot_align() { int l_i = ((QAction*) QObject::sender())->data().toInt(); int n = 0; qreal best = 0; if (l_i == ALIGN_LEFT || l_i == ALIGN_TOP) best = 99999999; else if (l_i == ALIGN_BOTTOM || l_i == ALIGN_RIGHT) best = -99999999; foreach (QGraphicsItem* l_oItem, scene()->selectedItems()) { if (connectable* c = dynamic_cast(l_oItem)) { n++; QRectF r = c->rect(); if (l_i == ALIGN_LEFT) best = qMin(r.x(), best); if (l_i == ALIGN_RIGHT) best = qMax(r.x() + r.width(), best); if (l_i == ALIGN_BOTTOM) best = qMax(r.y() + r.height(), best); if (l_i == ALIGN_TOP) best = qMin(r.y(), best); if (l_i == ALIGN_CENTER) best = r.x() + r.width() / 2.; // TODO do not pick one randomly if (l_i == ALIGN_MIDDLE) best = r.y() + r.height()/2.; } } if (l_i == ALIGN_CENTER || l_i == ALIGN_MIDDLE) best = (int) best; mem_pos_box *mem = new mem_pos_box(m_oMediator, m_iId); foreach (QGraphicsItem* l_oItem, scene()->selectedItems()) { if (connectable* c = dynamic_cast(l_oItem)) { data_box *box = c->m_oBox; mem->prev_values[box] = QPointF(box->m_iXX, box->m_iYY); switch (l_i) { case ALIGN_LEFT: mem->next_values[box] = QPoint(best, box->m_iYY); break; case ALIGN_RIGHT: mem->next_values[box] = QPoint(best - box->m_iWW, box->m_iYY); break; case ALIGN_TOP: mem->next_values[box] = QPoint(box->m_iXX, best); break; case ALIGN_BOTTOM: mem->next_values[box] = QPoint(box->m_iXX, best - box->m_iHH); break; case ALIGN_CENTER: mem->next_values[box] = QPoint(best - box->m_iWW / 2., box->m_iYY); break; case ALIGN_MIDDLE: mem->next_values[box] = QPoint(box->m_iXX, best - box->m_iHH / 2.); break; default: Q_ASSERT(false); } } } mem->apply(); } void box_view::mouseDoubleClickEvent(QMouseEvent* i_oEv) { if (i_oEv->button() != Qt::LeftButton) { //qDebug()<<"left button on click, leaving"; return; } QGraphicsItem *l_oItem = itemAt(i_oEv->pos()); if (l_oItem) { editable *l_o = dynamic_cast(l_oItem); if (l_o) { l_o->properties(); } } else { slot_add_item(); } } void box_view::mousePressEvent(QMouseEvent *i_oEv) { if (m_oMenu == NULL) { init_menu(); } if (i_oEv->button() == Qt::RightButton) { m_oLastPoint = mapToScene(i_oEv->pos()); enable_menu_actions(); m_oMenu->popup(i_oEv->globalPos()); return; } m_bPressed = true; m_oLastMovePoint = m_oLastPoint = mapToScene(i_oEv->pos()); if (i_oEv->button() == Qt::MidButton) { m_oScrollPoint = i_oEv->pos(); viewport()->setCursor(Qt::OpenHandCursor); m_bScroll = true; return; } QGraphicsItem *l_oItem = scene()->itemAt(mapToScene(i_oEv->pos())); box_chain* kk; if (l_oItem && (kk = dynamic_cast(l_oItem))) { Q_ASSERT(!m_oCurrent); foreach (QGraphicsItem *l_o, scene()->selectedItems()) { l_o->setSelected(false); } connectable *l_oParent = dynamic_cast(kk->parentItem()); Q_ASSERT(l_oParent); QPoint p = QPoint(m_oLastPoint.x(), m_oLastPoint.y()); m_oCurrent = new box_link(this); m_oCurrent->m_oInnerLink.m_iParent = l_oParent->m_iId; m_oCurrent->m_oInnerLink.m_iParentPos = data_link::EAST + MUL * 500; m_oCurrent->m_oInnerLink.m_iChild = NO_ITEM; m_oCurrent->m_oInnerLink.m_iChildPos = data_link::NORTH; m_oCurrent->m_oInnerLink.m_oStartPoint = m_oCurrent->m_oInnerLink.m_oEndPoint = p; if (dynamic_cast(l_oParent)) { m_oCurrent->m_oInnerLink.pen_style = Qt::DotLine; m_oCurrent->m_oInnerLink.m_iLeftArrow = data_link::NONE; m_oCurrent->m_oInnerLink.m_iRightArrow = data_link::NONE; } if (dynamic_cast(l_oParent) || dynamic_cast(l_oParent)) { m_oCurrent->m_oInnerLink.m_iLeftArrow = data_link::NONE; m_oCurrent->m_oInnerLink.m_iRightArrow = data_link::NONE; } m_oCurrent->setSelected(true); } box_item *k; if (l_oItem && (k = dynamic_cast(l_oItem))) { QPointF l_o = l_oItem->pos(); // TODO used by the handle for resizing the boxes - check that the click was on the handle if (m_oLastPoint.x() + m_oLastPoint.y() - l_o.x() - l_o.y() > k->rect().width() + k->rect().height() - 2*GRID) { m_oOffsetPoint = QPointF(k->rect().width(), k->rect().height()); } else { m_oOffsetPoint = QPointF(-1, -1); } } QGraphicsView::mousePressEvent(i_oEv); } void box_view::mouseMoveEvent(QMouseEvent *i_oEv) { if (m_bScroll) { QScrollBar *l_h_bar = horizontalScrollBar(); QScrollBar *l_v_bar = verticalScrollBar(); QPoint l_o = i_oEv->pos() - m_oScrollPoint; l_h_bar->setValue(l_h_bar->value() + (isRightToLeft() ? l_o.x() : - l_o.x())); l_v_bar->setValue(l_v_bar->value() - l_o.y()); m_oScrollPoint = i_oEv->pos(); return; } if (!m_bPressed) { return; } m_oLastMovePoint = mapToScene(i_oEv->pos()); QGraphicsView::mouseMoveEvent(i_oEv); } void box_view::mouseReleaseEvent(QMouseEvent *i_oEv) { if (m_oCurrent) { if (m_oItems.value(m_oCurrent->m_oInnerLink.m_iChild)) { mem_link_box *ln = new mem_link_box(m_oMediator, m_iId); ln->link = new data_link(); ln->link->copy_from(m_oCurrent->m_oInnerLink); ln->apply(); m_oCurrent = NULL; } else { // assume cancel delete m_oCurrent; m_oCurrent = NULL; } m_bPressed = false; QGraphicsView::mouseReleaseEvent(i_oEv); return; } if (m_bScroll) { QGraphicsView::mouseReleaseEvent(i_oEv); m_bPressed = false; m_bScroll = false; viewport()->setCursor(Qt::ArrowCursor); return; } QGraphicsView::mouseReleaseEvent(i_oEv); m_bPressed = false; { //if (qAbs(p->m_iXX - v->pos().x()) + qAbs(p->m_iYY - v->pos().y()) > 0.1) { QPointF p = mapToScene(i_oEv->pos()) - m_oLastPoint; if (qAbs(p.x()) > 3 || qAbs(p.y()) > 3) { mem_pos_box *mem = new mem_pos_box(m_oMediator, m_iId); foreach (QGraphicsItem *l_oI1, scene()->selectedItems()) { if (connectable* item = dynamic_cast(l_oI1)) { data_box *box = item->m_oBox; mem->prev_values[box] = QPointF(box->m_iXX, box->m_iYY); mem->next_values[box] = l_oI1->pos(); } } if (mem->prev_values.size() > 0) { mem->apply(); } else { delete mem; } } } check_canvas_size(); } void box_view::notify_box_props(int id, const QList& items) { Q_ASSERT(id == m_iId); foreach (diagram_item* it, items) { foreach (box_link *lnk, m_oLinks) { if (lnk->m_oLink == it) { data_link* dat = static_cast(it); lnk->m_oInnerLink.copy_from(*dat); lnk->update(); goto end; } } foreach (connectable *box, m_oItems.values()) { if (box->m_oBox == it) { (dynamic_cast(box))->update(); goto end; } } end: ; } } void box_view::notify_pos_box(int id, const QList& items) { Q_ASSERT(id == m_iId); foreach (data_box *box, items) { m_oItems[box->m_iId]->update_data(); } } void box_view::notify_size_box(int id, const QList& items) { Q_ASSERT(id == m_iId); foreach (data_box *box, items) { Q_ASSERT(m_oItems.contains(box->m_iId)); m_oItems[box->m_iId]->update_size(); } } int box_view::next_seq() { do { ++num_seq; } while (m_oItems.contains(num_seq)); return num_seq; } void box_view::notify_focus(void* ptr) { bool cond = ptr == this; m_oAddItemAction->setEnabled(cond); m_oDeleteAction->setEnabled(cond); //m_oEditAction->setEnabled(cond); } void box_view::message(const QString &s, int d) { emit sig_message(s, d); } bool box_view::slot_import_from_file() { KUrl l_o = KFileDialog::getOpenUrl(KUrl(notr("kfiledialog:///document")), trUtf8("*.semd|Semantik diagram (*.semd)"), this, trUtf8("Choose a file to open")); return import_from_file(l_o); } bool box_view::import_from_file(const KUrl& l_o) { if (l_o.path().isEmpty()) { return false; } // use a full semantik document, even if we are only interested in one item sem_mediator *x = new sem_mediator(this); bool l_bOk = false; if (x->open_file(l_o.path()) && x->m_oItems.size() == 1) { l_bOk = true; data_item *tmp = x->m_oItems.values().at(0); mem_import_box *imp = new mem_import_box(m_oMediator, m_iId); imp->init(tmp->m_oBoxes.values(), tmp->m_oLinks); imp->m_iNewFont = tmp->m_oDiagramFont; imp->apply(); m_oCurrentUrl = l_o; emit sig_Url(m_oCurrentUrl); } delete x; return l_bOk; } bool box_view::slot_export_to_file() { choose_export: KUrl l_o = KFileDialog::getSaveUrl(KUrl(notr("kfiledialog:///document")), trUtf8("*.semd|Semantik diagram (*.semd)"), this, trUtf8("Choose a file name")); if (l_o.path().isEmpty()) return false; if (!l_o.path().endsWith(notr(".semd"))) { l_o = KUrl(l_o.path()+notr(".semd")); } // TODO? //if (m_oMediator->m_sLastSaved != l_o.path()) { if (l_o.isLocalFile() && QFile::exists(l_o.path())) { int mu = KMessageBox::questionYesNo(NULL, //this, trUtf8("The file \"%1\" already exists.\nOverwrite it?").arg(l_o.path()), trUtf8("Overwrite existing file"), KStandardGuiItem::yes(), KStandardGuiItem::no(), notr("OverwriteExistingFile")); if (!mu) { goto choose_export; } } } m_oCurrentUrl = l_o; emit sig_Url(m_oCurrentUrl); // now the magic sem_mediator *x = new sem_mediator(this); data_item *l_oData = m_oMediator->m_oItems.value(m_iId); l_oData->m_iDataType = VIEW_DIAG; x->m_oItems[1] = l_oData; x->m_oColorSchemes = m_oMediator->m_oColorSchemes; if (x->save_file(l_o.path())) { emit sig_message(trUtf8("Saved '%1'").arg(l_o.path()), 2000); m_oMediator->set_dirty(false); return true; } return false; } bool box_view::slot_save() { if (m_oCurrentUrl.isValid()) { sem_mediator *x = new sem_mediator(this); data_item *l_oData = m_oMediator->m_oItems.value(m_iId); l_oData->m_iDataType = VIEW_DIAG; x->m_oItems[1] = l_oData; x->m_oColorSchemes = m_oMediator->m_oColorSchemes; if (x->save_file(m_oCurrentUrl.path())) { m_oMediator->set_dirty(false); emit sig_message(trUtf8("Saved '%1'").arg(m_oCurrentUrl.path()), 2000); return true; } } else { return slot_export_to_file(); } return false; } int box_view::batch_print_map(const QString& url, QPair & p) { QRectF l_oRect; foreach (QGraphicsItem*it, scene()->items()) { if (it->isVisible()) { if (l_oRect.width() < 1) { l_oRect = it->boundingRect(); l_oRect.translate(it->pos()); } else { QRectF tmp = it->boundingRect(); tmp.translate(it->pos()); l_oRect = l_oRect.united(tmp); } } it->setCacheMode(QGraphicsItem::NoCache); // the magic happens here } l_oRect = l_oRect.adjusted(-15, -15, 15, 15); QRectF l_oR(0, 0, l_oRect.width(), l_oRect.height()); if (p.first != 0) { l_oR.setWidth(p.first); if (p.second == 0) { l_oR.setHeight((p.first * l_oRect.height()) / (double) l_oRect.width()); } } if (p.second != 0) { l_oR.setHeight(p.second); if (p.first == 0) { l_oR.setWidth((p.second * l_oRect.width()) / (double) l_oRect.height()); } } Qt::AspectRatioMode rat = (p.first == 0 || p.second == 0) ? Qt::KeepAspectRatio : Qt::IgnoreAspectRatio; if (url.endsWith("png")) { // fill with white QImage l_oImage((int) l_oR.width(), (int) l_oR.height(), QImage::Format_RGB32); l_oImage.fill(qRgb(255,255,255)); QPainter l_oP; l_oP.begin(&l_oImage); l_oP.setRenderHints(QPainter::Antialiasing); scene()->render(&l_oP, l_oR, l_oRect, rat); l_oP.end(); l_oImage.save(url); } else if (url.endsWith("pdf") or url.endsWith("ps") or url.endsWith("eps")) { QPrinter l_oPrinter; l_oPrinter.setOrientation(QPrinter::Portrait); if (url.endsWith("pdf")) { l_oPrinter.setOutputFormat(QPrinter::PdfFormat); } else { l_oPrinter.setOutputFormat(QPrinter::PostScriptFormat); l_oPrinter.setResolution(QPrinter::HighResolution); } l_oPrinter.setPaperSize(l_oR.size(), QPrinter::DevicePixel); l_oPrinter.setPageMargins(0, 0, 0, 0, QPrinter::DevicePixel); l_oPrinter.setOutputFileName(url); QPainter l_oPdf; if (l_oPdf.begin(&l_oPrinter)) { m_bDisableGradient = true; scene()->render(&l_oPdf, l_oR, l_oRect, rat); l_oPdf.end(); m_bDisableGradient = false; } } else if (url.endsWith("svg")) { QSvgGenerator l_oGenerator; l_oGenerator.setFileName(url); l_oGenerator.setSize(QSize(l_oR.width(), l_oR.height())); l_oGenerator.setViewBox(l_oR); l_oGenerator.setTitle(trUtf8("Semantik diagram")); l_oGenerator.setResolution(QX11Info().appDpiX()); QPainter l_oP; l_oP.begin(&l_oGenerator); l_oP.setRenderHints(QPainter::Antialiasing); scene()->render(&l_oP, l_oR, l_oRect, rat); l_oP.end(); } else { return 12; } return 0; } // The following is copy-pasted. Watch carefully void box_view::slot_print() { QPrinter *l_oP = new QPrinter; QRectF l_oRect; foreach (QGraphicsItem*it, scene()->items()) { if (it->isVisible()) { if (l_oRect.width() < 1) { l_oRect = it->boundingRect(); l_oRect.translate(it->pos()); } else { QRectF tmp = it->boundingRect(); tmp.translate(it->pos()); l_oRect = l_oRect.united(tmp); } } it->setCacheMode(QGraphicsItem::NoCache); // the magic happens here } l_oRect = l_oRect.adjusted(-15, -15, 15, 15); QRectF l_oR(0, 0, l_oRect.width(), l_oRect.height()); l_oP->setOrientation(QPrinter::Portrait); l_oP->setOutputFormat(QPrinter::PdfFormat); l_oP->setPaperSize(l_oR.size(), QPrinter::DevicePixel); l_oP->setPageMargins(0, 0, 0, 0, QPrinter::DevicePixel); QPrintDialog l_oD(l_oP, this); if (l_oD.exec() != QDialog::Accepted) { emit sig_message(trUtf8("Printing cancelled"), 3000); return; } QPainter l_oPdf; if (l_oPdf.begin(l_oP)) { m_bDisableGradient = true; scene()->render(&l_oPdf, QRectF(), l_oRect, Qt::KeepAspectRatio); l_oPdf.end(); m_bDisableGradient = false; emit sig_message(trUtf8("Printing completed"), 5000); } else { emit sig_message(trUtf8("Problem during printing :-("), 5000); } } void box_view::slot_copy_picture() { QRectF l_oRect; foreach (QGraphicsItem*it, scene()->items()) { if (it->isVisible()) { if (l_oRect.width() < 1) { l_oRect = it->boundingRect(); l_oRect.translate(it->pos()); } else { QRectF tmp = it->boundingRect(); tmp.translate(it->pos()); l_oRect = l_oRect.united(tmp); } } it->setCacheMode(QGraphicsItem::NoCache); // the magic happens here } l_oRect = l_oRect.adjusted(-15, -15, 15, 15); QRectF l_oR(0, 0, l_oRect.width(), l_oRect.height()); Qt::AspectRatioMode rat = Qt::KeepAspectRatio; QImage l_oImage((int) l_oR.width(), (int) l_oR.height(), QImage::Format_RGB32); l_oImage.fill(qRgb(255,255,255)); QPainter l_oP; l_oP.begin(&l_oImage); l_oP.setRenderHints(QPainter::Antialiasing); scene()->render(&l_oP, l_oR, l_oRect, rat); l_oP.end(); //QApplication::clipboard()->setMimeType("application/x-png"); QApplication::clipboard()->setImage(l_oImage); } void box_view::notify_change_properties(void *) { // this may be the wrong approach entirely data_item *l_oData = m_oMediator->m_oItems.value(m_iId); if (l_oData->m_oDiagramFont != font()) { scene()->setFont(l_oData->m_oDiagramFont); foreach (QGraphicsItem *l_o, scene()->items()) { if (connectable* t = dynamic_cast(l_o)) { t->update_size(); } l_o->update(); } } } #include "box_view.moc" semantik-0.9.5/src/fig/box_view.h000664 000000 000000 00000007301 12732552614 016657 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef BOX_VIEW_H #define BOX_VIEW_H #include #include #include #include #include "con.h" class QActionGroup; class connectable; class box_item; class box_link; class data_link; class data_box; class diagram_item; class sem_mediator; class box_view : public QGraphicsView { Q_OBJECT public: box_view(QWidget*, sem_mediator *); ~box_view(); void clear_diagram(); QList m_oLinks; QMap m_oItems; QPointF m_oLastPoint; QPointF m_oLastMovePoint; QPoint m_oScrollPoint; bool m_bPressed; QPointF m_oOffsetPoint; void check_canvas_size(); QMenu* m_oMenu; //QMenu* m_oWidthMenu; //QMenu* m_oStyleMenu; QMenu* m_oAddBoxMenu; QMenu* m_oAlignMenu; QMenu* m_oSizeMenu; QMenu* m_oFileMenu; QAction *m_oAddItemAction; QAction *m_oAddLabel; QAction *m_oAddComponent; QAction *m_oAddActor; QAction *m_oAddUsecase; QAction *m_oAddNode; QAction *m_oAddDotStart; QAction *m_oAddDotEnd; QAction *m_oAddDecision; QAction *m_oAddParallelHorizontal; QAction *m_oAddParallelVertical; QAction *m_oAddMatrix; QAction *m_oAddFrame; QAction *m_oAddClass; QAction *m_oAddDatabase; QAction *m_oFileExport; QAction *m_oFileImport; QAction *m_oCopyToClipboard; QAction *m_oPropertiesAction; QAction *m_oDeleteAction; QAction *m_oColorAction; QAction *m_oMoveUpAction; QAction *m_oMoveDownAction; void focusInEvent(QFocusEvent *); void focusOutEvent(QFocusEvent *); void enable_menu_actions(); // like check_actions, but only for the popup menu int m_iId; // the item this diagram belongs to void sync_view(); void from_string(const QString &); void resizeEvent(QResizeEvent*); sem_mediator *m_oMediator; box_link *m_oCurrent; int m_bScroll; QActionGroup *m_oWidthGroup; QActionGroup *m_oStyleGroup; QActionGroup *m_oAlignGroup; QActionGroup *m_oSizeGroup; void keyPressEvent(QKeyEvent *i_oEvent); void keyReleaseEvent(QKeyEvent *i_oEvent); void mousePressEvent(QMouseEvent *); void mouseMoveEvent(QMouseEvent*); void mouseReleaseEvent(QMouseEvent*); void mouseDoubleClickEvent(QMouseEvent*); void wheelEvent(QWheelEvent*); //void edit_off(); int next_seq(); int num_seq; void message(const QString &, int); bool m_bDisableGradient; bool m_bShowFileMenu; void init_menu(); KUrl m_oCurrentUrl; int batch_print_map(const QString& url, QPair & p); bool import_from_file(const KUrl& l_o); public slots: void change_colors(QAction* i_oAct); void enable_actions(); // used on focus in void fit_zoom(); void slot_delete(); void slot_add_item(); void slot_color(); void slot_edit_properties(); void slot_align(); void slot_size(); void slot_move_up(); void slot_move_down(); void slot_penstyle(); void slot_penwidth(); void slot_add_element(); void slot_print(); void notify_focus(void* ptr); void notify_add_item(int); void notify_add_box(int, int); void notify_del_box(int, int); void notify_edit_box(int, int); void notify_link_box(int id, data_link *link); void notify_unlink_box(int id, data_link* link); void notify_box_props(int id, const QList&); void notify_pos_box(int, const QList&); void notify_size_box(int, const QList&); void notify_change_link_box(int id, data_link*link); void notify_change_properties(void *); void notify_select(const QList& unsel, const QList& sel); void notify_export_item(int); bool slot_import_from_file(); bool slot_export_to_file(); bool slot_save(); void slot_copy_picture(); signals: void sig_message(const QString &, int); void sig_Url(const KUrl&); }; #endif semantik-0.9.5/src/fig/diagram_document.cpp000664 000000 000000 00000006253 12732552614 020677 0ustar00rootroot000000 000000 // Thomas Nagy 2013-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "diagram_document.h" #include "sem_mediator.h" #include "box_view.h" # include "sembind.h" #include "mem_base.h" diagram_document::diagram_document(QWidget *i_oParent) : QFrame(i_oParent) { setLineWidth(0); setFrameStyle(QFrame::NoFrame); m_oMediator = new sem_mediator(this); m_oDiagramView = new box_view(this, m_oMediator); QGridLayout *ll = new QGridLayout(this); ll->addWidget(m_oDiagramView); } void diagram_document::init() { connect(m_oMediator, SIGNAL(sig_add_item(int)), m_oDiagramView, SLOT(notify_add_item(int))); connect(m_oMediator, SIGNAL(sig_select(const QList&, const QList&)), m_oDiagramView, SLOT(notify_select(const QList&, const QList&))); connect(m_oMediator, SIGNAL(sig_add_box(int, int)), m_oDiagramView, SLOT(notify_add_box(int, int))); connect(m_oMediator, SIGNAL(sig_del_box(int, int)), m_oDiagramView, SLOT(notify_del_box(int, int))); connect(m_oMediator, SIGNAL(sig_edit_box(int, int)), m_oDiagramView, SLOT(notify_edit_box(int, int))); connect(m_oMediator, SIGNAL(sig_link_box(int, data_link*)), m_oDiagramView, SLOT(notify_link_box(int, data_link*))); connect(m_oMediator, SIGNAL(sig_unlink_box(int, data_link*)), m_oDiagramView, SLOT(notify_unlink_box(int, data_link*))); connect(m_oMediator, SIGNAL(sig_change_link_box(int, data_link*)), m_oDiagramView, SLOT(notify_change_link_box(int, data_link*))); connect(m_oMediator, SIGNAL(sig_box_props(int, const QList&)), m_oDiagramView, SLOT(notify_box_props(int, const QList&))); connect(m_oMediator, SIGNAL(sig_pos_box(int, const QList&)), m_oDiagramView, SLOT(notify_pos_box(int, const QList&))); connect(m_oMediator, SIGNAL(sig_size_box(int, const QList&)), m_oDiagramView, SLOT(notify_size_box(int, const QList&))); connect(m_oMediator, SIGNAL(sig_focus(void *)), m_oDiagramView, SLOT(notify_focus(void *))); connect(m_oMediator, SIGNAL(sig_change_properties(void *)), m_oDiagramView, SLOT(notify_change_properties(void *))); connect(m_oDiagramView, SIGNAL(sig_Url(const KUrl&)), this, SLOT(slot_tab_name(const KUrl&))); mem_add *add = new mem_add(m_oMediator); add->init(); add->item->m_iXX = 0; add->item->m_iYY = 0; add->parent = NO_ITEM; add->apply(); m_oDiagramView->scene()->setFont(add->item->m_oDiagramFont); m_oMediator->notify_focus(m_oDiagramView); m_oMediator->m_oUndoStack.clear(); m_oMediator->m_oRedoStack.clear(); m_oMediator->set_dirty(false); } diagram_document::~diagram_document() { m_oMediator->disconnect(); delete m_oMediator; delete m_oDiagramView; } void diagram_document::slot_tab_name(const KUrl& i_oUrl) { emit sig_tab_name(this, i_oUrl); } void diagram_document::slot_open() { } #include "diagram_document.moc" semantik-0.9.5/src/fig/diagram_document.h000664 000000 000000 00000001023 12732552614 020332 0ustar00rootroot000000 000000 // Thomas Nagy 2013-2015 GPLV3 %: ifndef DIAGRAM_WIDGET_H #define DIAGRAM_WIDGET_H %: inc\ lude "con.\ h" #inc\ lude %: include class box_view; class sem_mediator; class diagram_document : public QFrame { Q_OBJECT public: diagram_document(QWidget *i_oParent=0); ~diagram_document(); void init(); box_view *m_oDiagramView; sem_mediator *m_oMediator; public slots: void slot_open(); void slot_tab_name(const KUrl&); signals: void sig_tab_name(diagram_document*, const KUrl&); }; #endif semantik-0.9.5/src/fig/ed:table.h000664 000000 000000 00000000276 12732552614 016533 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef editable_h #define editable_h #define CTRLSIZE 8 class editable { public: editable() {} virtual void properties() = 0; }; #endif // editable_h semantik-0.9.5/src/fig/filetree.cpp000664 000000 000000 00000005003 12732552614 017164 0ustar00rootroot000000 000000 // Thomas Nagy 2013-2015 GPLV3 # include #include #include #include #include #include fileproxy::fileproxy(QObject* i_oParent) : QSortFilterProxyModel(i_oParent) { setDynamicSortFilter(true); setSortCaseSensitivity(Qt::CaseSensitive); sort(KDirModel::Name, Qt::AscendingOrder); setSupportedDragActions(Qt::CopyAction | Qt::MoveAction | Qt::LinkAction | Qt::IgnoreAction); } bool fileproxy::filterAcceptsRow(int i_iRow, const QModelIndex& i_oParent) const { KDirModel* l_o = static_cast(sourceModel()); const QModelIndex l_oIndex = sourceModel()->index(i_iRow, 1, i_oParent); const KFileItem l_oFileItem = l_o->itemForIndex(l_oIndex); if (l_oFileItem.isDir() || l_oFileItem.name().endsWith(".semd")) { return true; } return false; } bool fileproxy::lessThan(const QModelIndex& i_oLeft, const QModelIndex& i_oRight) const { KDirModel* l_o = static_cast(sourceModel()); const KFileItem i_oLeftFileItem = l_o->itemForIndex(i_oLeft); const KFileItem i_oRightFileItem = l_o->itemForIndex(i_oRight); if (i_oLeftFileItem.isDir() and !i_oRightFileItem.isDir()) { return true; } else if (!i_oLeftFileItem.isDir() and i_oRightFileItem.isDir()) { return false; } bool ret = QString::localeAwareCompare(i_oLeftFileItem.name(), i_oRightFileItem.name()) < 0; return ret; } int fileproxy::columnCount(const QModelIndex&) const { return 1; } filetree::filetree(QWidget *i_oWidget) : QTreeView(i_oWidget) { setHeaderHidden(true); setEditTriggers(QAbstractItemView::NoEditTriggers); m_oModel = new KDirModel(this); m_oProxy = new fileproxy(this); m_oProxy->setSourceModel(m_oModel); m_oProxy->setDynamicSortFilter(true); setModel(m_oProxy); m_oModel->dirLister()->openUrl(KUrl("/"), KDirLister::Keep); setSortingEnabled(true); sortByColumn(0, Qt::AscendingOrder); connect(this, SIGNAL(clicked(const QModelIndex&)), this, SLOT(reclick(const QModelIndex&))); connect(m_oModel, SIGNAL(expand(const QModelIndex&)), this, SLOT(slot_expand(const QModelIndex&))); } void filetree::slot_expand(const QModelIndex& i_oIndex) { QModelIndex l_o = m_oProxy->mapFromSource(i_oIndex); expand(l_o); selectionModel()->select(l_o, QItemSelectionModel::ClearAndSelect); } void filetree::reclick(const QModelIndex& i_oModelIndex) { const KFileItem l_oFileItem = m_oModel->itemForIndex(m_oProxy->mapToSource(i_oModelIndex)); if (!l_oFileItem.isDir()) { emit url_selected(l_oFileItem.url()); } } #include "filetree.moc" semantik-0.9.5/src/fig/filetree.h000664 000000 000000 00000001354 12732552614 016636 0ustar00rootroot000000 000000 // Thomas Nagy 2013-2015 GPLV3 #include #include #include #ifndef FILETREE #define FILETREE class KDirModel; class fileproxy : public QSortFilterProxyModel { Q_OBJECT public: fileproxy(QObject*); bool lessThan(const QModelIndex &left, const QModelIndex &right) const; int columnCount(const QModelIndex& parent = QModelIndex()) const; bool filterAcceptsRow(int, const QModelIndex& i_oIndex) const; }; class filetree : public QTreeView { Q_OBJECT public: filetree(QWidget*); KDirModel *m_oModel; fileproxy *m_oProxy; public slots: void reclick(const QModelIndex& i_oModelIndex); void slot_expand(const QModelIndex& i_oIndex); signals: void url_selected(const KUrl&); }; #endif semantik-0.9.5/src/fig/matrix_dialog.cpp000664 000000 000000 00000003415 12732552614 020215 0ustar00rootroot000000 000000 // Thomas Nagy 2014-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "matrix_dialog.h" matrix_dialog::matrix_dialog(QWidget *i_oParent): QDialog(i_oParent) { QGridLayout *l_oGridLayout = new QGridLayout(this); QLabel *l_sLabel; l_sLabel = new QLabel(this); l_sLabel->setText(trUtf8("Rows")); l_oGridLayout->addWidget(l_sLabel, 0, 0, 1, 1); l_sLabel = new QLabel(this); l_sLabel->setText(trUtf8("Columns")); l_oGridLayout->addWidget(l_sLabel, 1, 0, 1, 1); m_oRows = new QSpinBox(this); m_oRows->setMinimum(1); m_oRows->setMaximum(100); l_oGridLayout->addWidget(m_oRows, 0, 1, 1, 1); m_oCols = new QSpinBox(this); m_oCols->setMinimum(1); m_oCols->setMaximum(100); l_oGridLayout->addWidget(m_oCols, 1, 1, 1, 1); QSpacerItem *spacerItem = new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding); l_oGridLayout->addItem(spacerItem, 2, 1, 1, 1); QDialogButtonBox *l_oButtonBox = new QDialogButtonBox(this); l_oButtonBox->setOrientation(Qt::Horizontal); l_oButtonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok); l_oGridLayout->addWidget(l_oButtonBox, 3, 0, 1, 2); connect(l_oButtonBox, SIGNAL(accepted()), this, SLOT(accept())); connect(l_oButtonBox, SIGNAL(rejected()), this, SLOT(reject())); QSize size(321, 120); size = size.expandedTo(minimumSizeHint()); resize(size); } #include "matrix_dialog.moc" semantik-0.9.5/src/fig/matrix_dialog.h000664 000000 000000 00000000457 12732552614 017665 0ustar00rootroot000000 000000 // Thomas Nagy 2014-2015 GPLV3 #ifndef MATRIX_DIALOG_H #define MATRIX_DIALOG_H #include #include #include #include"aux.h" class matrix_dialog : public QDialog { Q_OBJECT public: matrix_dialog(QWidget *i_oParent); QSpinBox *m_oRows; QSpinBox *m_oCols; }; #endif semantik-0.9.5/src/fig/mem_box.cpp000664 000000 000000 00000025765 12732552614 017034 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include /* */ %: include "con.h" #include #include "sembind.h" #include "data_item.h" %: include "sem_mediator.h" #include "mem_box.h" mem_del_box::mem_del_box(sem_mediator* mod, int id) : mem_command(mod) { m_iId = id; } void mem_del_box::init(QList _items, QList _links) { items = _items; links = _links; } void mem_del_box::undo() { data_item *item = model->m_oItems[m_iId]; foreach (data_box *k, items) { item->m_oBoxes[k->m_iId] = k; model->notify_add_box(m_iId, k->m_iId); } foreach (data_link *k, links) { item->m_oLinks.append(k); model->notify_link_box(m_iId, k); } undo_dirty(); } void mem_del_box::redo() { data_item *item = model->m_oItems[m_iId]; foreach (data_link *k, links) { model->notify_unlink_box(m_iId, k); item->m_oLinks.removeAll(k); } foreach (data_box *k, items) { model->notify_del_box(m_iId, k->m_iId); item->m_oBoxes.remove(k->m_iId); } redo_dirty(); } /////////////////////////////////////////////////////////////////// mem_add_box::mem_add_box(sem_mediator* mod, int id, int boxid) : mem_command(mod) { item = NULL; m_iId = id; item = model->m_oItems.value(id); box = new data_box(boxid); box->color = QColor("#cafeba"); } void mem_add_box::redo() { item->m_oBoxes[box->m_iId] = box; model->notify_add_box(item->m_iId, box->m_iId); redo_dirty(); } void mem_add_box::undo() { model->notify_del_box(item->m_iId, box->m_iId); item->m_oBoxes.remove(box->m_iId); undo_dirty(); } /////////////////////////////////////////////////////////////////// mem_edit_box::mem_edit_box(sem_mediator* mod, int id, int bid) : mem_command(mod) { item = model->m_oItems[id]; box = item->m_oBoxes[bid]; oldText = box->m_sText; oldHeight = box->m_iHH; } void mem_edit_box::redo() { box->m_sText = newText; box->m_iHH = newHeight; model->notify_edit_box(item->m_iId, box->m_iId); redo_dirty(); } void mem_edit_box::undo() { box->m_sText = oldText; box->m_iHH = oldHeight; model->notify_edit_box(item->m_iId, box->m_iId); undo_dirty(); } /////////////////////////////////////////////////////////////////// mem_link_box::mem_link_box(sem_mediator* mod, int id) : mem_command(mod) { m_iId = id; } void mem_link_box::init(int parent, int parentPos, int child, int childPos) { link = new data_link(); link->m_iParent = parent; link->m_iParentPos = parentPos; link->m_iChild = child; link->m_iChildPos = childPos; } void mem_link_box::redo() { //qDebug()<<"redo mem_link_box"<m_oItems[m_iId]->m_oLinks.append(link); model->notify_link_box(m_iId, link); redo_dirty(); } void mem_link_box::undo() { //qDebug()<<"undo mem_link_box"<notify_unlink_box(m_iId, link); model->m_oItems[m_iId]->m_oLinks.removeAll(link); undo_dirty(); } /////////////////////////////////////////////////////////////////// mem_unlink_box::mem_unlink_box(sem_mediator* mod, int id) : mem_command(mod) { m_iId = id; } void mem_unlink_box::redo() { //qDebug()<<"redo mem_link_box"<notify_unlink_box(m_iId, link); model->m_oItems[m_iId]->m_oLinks.removeAll(link); redo_dirty(); } void mem_unlink_box::undo() { //qDebug()<<"undo mem_link_box"<m_oItems[m_iId]->m_oLinks.append(link); model->notify_link_box(m_iId, link); undo_dirty(); } /////////////////////////////////////////////////////////////////// #define CH_COLOR 1 #define CH_BORDER 2 #define CH_PENST 4 mem_prop_box::mem_prop_box(sem_mediator* mod, int id) : mem_command(mod) { m_iId = id; } void mem_prop_box::redo() { for (int i = prev_values.size(); i < items.size(); ++i) { diagram_item *cur = items.at(i); diagram_item *it = new diagram_item(); it->color = cur->color; it->pen_style = cur->pen_style; it->border_width = cur->border_width; prev_values[cur] = it; } foreach (diagram_item *cur, items) { if (change_type & CH_COLOR) { cur->color = new_props.color; } if (change_type & CH_BORDER) { cur->border_width = new_props.border_width; } if (change_type & CH_PENST) { cur->pen_style = new_props.pen_style; } } model->notify_box_props(m_iId, items); redo_dirty(); } void mem_prop_box::undo() { foreach (diagram_item *cur, items) { if (change_type & CH_COLOR) { cur->color = prev_values[cur]->color; } if (change_type & CH_BORDER) { cur->border_width = prev_values[cur]->border_width; } if (change_type & CH_PENST) { cur->pen_style = prev_values[cur]->pen_style; } } model->notify_box_props(m_iId, items); undo_dirty(); } /////////////////////////////////////////////////////////////////// mem_pos_box::mem_pos_box(sem_mediator* mod, int id) : mem_command(mod) { m_iId = id; } void mem_pos_box::redo() { foreach (data_box* box, next_values.keys()) { box->m_iXX = next_values[box].x(); box->m_iYY = next_values[box].y(); } model->notify_pos_box(m_iId, next_values.keys()); redo_dirty(); } void mem_pos_box::undo() { foreach (data_box* box, prev_values.keys()) { box->m_iXX = prev_values[box].x(); box->m_iYY = prev_values[box].y(); } model->notify_pos_box(m_iId, prev_values.keys()); undo_dirty(); } /////////////////////////////////////////////////////////////////// mem_change_link_box::mem_change_link_box(sem_mediator* mod, int id) : mem_command(mod) { m_iId = id; } void mem_change_link_box::redo() { link->copy_from(next); model->notify_change_link_box(m_iId, link); redo_dirty(); } void mem_change_link_box::undo() { link->copy_from(prev); model->notify_change_link_box(m_iId, link); undo_dirty(); } /////////////////////////////////////////////////////////////////// mem_size_box::mem_size_box(sem_mediator* mod, int id) : mem_command(mod) { m_iId = id; } void mem_size_box::redo() { foreach (data_box* box, next_values.keys()) { box->m_iXX = next_values[box].x(); box->m_iYY = next_values[box].y(); if (next_values[box].width() > 0) box->m_iWW = next_values[box].width(); if (next_values[box].height() > 0) box->m_iHH = next_values[box].height(); } model->notify_size_box(m_iId, next_values.keys()); redo_dirty(); } void mem_size_box::undo() { foreach (data_box* box, prev_values.keys()) { box->m_iXX = prev_values[box].x(); box->m_iYY = prev_values[box].y(); if (prev_values[box].width() > 0) box->m_iWW = prev_values[box].width(); if (prev_values[box].height() > 0) box->m_iHH = prev_values[box].height(); } model->notify_size_box(m_iId, prev_values.keys()); undo_dirty(); } /////////////////////////////////////////////////////////////////// mem_edit_link::mem_edit_link(sem_mediator* mod, int id) : mem_command(mod) { m_iId = id; } void mem_edit_link::redo() { link->copy_from(next); QList items; items.append(link); model->notify_box_props(m_iId, items); redo_dirty(); } void mem_edit_link::undo() { link->copy_from(prev); QList items; items.append(link); model->notify_box_props(m_iId, items); undo_dirty(); } /////////////////////////////////////////////////////////////////// mem_import_box::mem_import_box(sem_mediator* mod, int id) : mem_command(mod) { m_iId = id; } void mem_import_box::init(QList _items, QList _links) { new_items = _items; new_links = _links; data_item *item = model->m_oItems[m_iId]; old_items.append(item->m_oBoxes.values()); old_links.append(item->m_oLinks); m_iOldFont = item->m_oDiagramFont; } void mem_import_box::undo() { data_item *item = model->m_oItems[m_iId]; item->m_oDiagramFont = m_iOldFont; model->notify_change_properties(NULL); foreach (data_link *k, new_links) { model->notify_unlink_box(m_iId, k); item->m_oLinks.removeAll(k); } foreach (data_box *k, new_items) { model->notify_del_box(m_iId, k->m_iId); item->m_oBoxes.remove(k->m_iId); } foreach (data_box *k, old_items) { item->m_oBoxes[k->m_iId] = k; model->notify_add_box(m_iId, k->m_iId); } foreach (data_link *k, old_links) { item->m_oLinks.append(k); model->notify_link_box(m_iId, k); } undo_dirty(); } void mem_import_box::redo() { data_item *item = model->m_oItems[m_iId]; item->m_oDiagramFont = m_iNewFont; model->notify_change_properties(NULL); foreach (data_link *k, old_links) { model->notify_unlink_box(m_iId, k); item->m_oLinks.removeAll(k); } foreach (data_box *k, old_items) { model->notify_del_box(m_iId, k->m_iId); item->m_oBoxes.remove(k->m_iId); } foreach (data_box *k, new_items) { item->m_oBoxes[k->m_iId] = k; model->notify_add_box(m_iId, k->m_iId); } foreach (data_link *k, new_links) { item->m_oLinks.append(k); model->notify_link_box(m_iId, k); } redo_dirty(); } /////////////////////////////////////////////////////////////////// mem_matrix::mem_matrix(sem_mediator* mod, int id) : mem_command(mod) { m_iId = id; } void mem_matrix::redo() { m_oBox->m_oRowSizes.clear(); foreach (int l_i, m_oNewRowSizes) { m_oBox->m_oRowSizes.append(l_i); } m_oBox->m_oColSizes.clear(); foreach (int l_i, m_oNewColSizes) { m_oBox->m_oColSizes.append(l_i); } m_oBox->m_iWW = m_iNewWW; m_oBox->m_iHH = m_iNewHH; QList lst; lst.push_back(m_oBox); model->notify_size_box(m_iId, lst); redo_dirty(); } void mem_matrix::undo() { m_oBox->m_oRowSizes.clear(); foreach (int l_i, m_oOldRowSizes) { m_oBox->m_oRowSizes.append(l_i); } m_oBox->m_oColSizes.clear(); foreach (int l_i, m_oOldColSizes) { m_oBox->m_oColSizes.append(l_i); } m_oBox->m_iWW = m_iOldWW; m_oBox->m_iHH = m_iOldHH; QList lst; lst.push_back(m_oBox); model->notify_size_box(m_iId, lst); undo_dirty(); } void mem_matrix::init(data_box *i_oBox) { m_oBox = i_oBox; foreach (int l_i, m_oBox->m_oRowSizes) { m_oOldRowSizes.push_back(l_i); m_oNewRowSizes.push_back(l_i); } foreach (int l_i, m_oBox->m_oColSizes) { m_oOldColSizes.push_back(l_i); m_oNewColSizes.push_back(l_i); } m_iOldWW = m_iNewWW = m_oBox->m_iWW; m_iOldHH = m_iNewHH = m_oBox->m_iHH; } /////////////////////////////////////////////////////////////////// mem_class::mem_class(sem_mediator* mod, int id) : mem_command(mod), m_oOldBox(id), m_oNewBox(id) { m_iId = id; } void mem_class::redo() { data_item *item = model->m_oItems[m_iId]; data_box *l_oBox = item->m_oBoxes[m_iBoxId]; *l_oBox = m_oNewBox; QList lst; lst.push_back(l_oBox); model->notify_size_box(m_iId, lst); redo_dirty(); } void mem_class::undo() { data_item *item = model->m_oItems[m_iId]; data_box *l_oBox = item->m_oBoxes[m_iBoxId]; *l_oBox = m_oOldBox; QList lst; lst.push_back(l_oBox); model->notify_size_box(m_iId, lst); undo_dirty(); } void mem_class::init(data_box *i_oBox) { m_iBoxId = i_oBox->m_iId; m_oNewBox = m_oOldBox = *i_oBox; } /////////////////////////////////////////////////////////////////// mem_diagram_properties::mem_diagram_properties(sem_mediator* mod, int id) : mem_command(mod) { m_iId = id; } void mem_diagram_properties::redo() { data_item *item = model->m_oItems[m_iId]; item->m_oDiagramFont = m_oNewFont; model->notify_change_properties(NULL); } void mem_diagram_properties::undo() { data_item *item = model->m_oItems[m_iId]; item->m_oDiagramFont = m_oOldFont; model->notify_change_properties(NULL); } semantik-0.9.5/src/fig/mem_box.h000664 000000 000000 00000010006 12732552614 016457 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef MEM_BOX #define MEM_BOX #include #include "QHash" #include "QGraphicsItem" #include "mem_command.h" class data_link; class mem_del_box : public mem_command { public: mem_del_box(sem_mediator*, int id); void init(QList, QList); void undo(); void redo(); int m_iId; QList items; QList links; IType type() { return DEL_BOX; } }; class mem_add_box : public mem_command { public: mem_add_box(sem_mediator*, int id, int boxid); void undo(); void redo(); int m_iId; data_item* item; data_box* box; double m_iXX; double m_iYY; IType type() { return ADD_BOX; } }; class mem_edit_box: public mem_command { public: mem_edit_box(sem_mediator*, int id, int box); void undo(); void redo(); data_item *item; data_box *box; int oldHeight; int newHeight; QString oldText; QString newText; IType type() { return EDIT_BOX; } }; class mem_link_box : public mem_command { public: mem_link_box(sem_mediator*, int id); void init(int, int, int, int); void undo(); void redo(); int m_iId; data_link *link; IType type() { return LINK_BOX; } }; class mem_unlink_box : public mem_command { public: mem_unlink_box(sem_mediator*, int id); void undo(); void redo(); int m_iId; data_link *link; IType type() { return UNLINK_BOX; } }; #define CH_COLOR 1 #define CH_BORDER 2 #define CH_PENST 4 class mem_prop_box : public mem_command { public: mem_prop_box(sem_mediator*, int id); void undo(); void redo(); int m_iId; int change_type; diagram_item new_props; // item -> item with value before QList items; IType type() { return PROP_BOX; } private: QHash prev_values; }; class mem_pos_box : public mem_command { public: mem_pos_box(sem_mediator*, int id); void undo(); void redo(); int m_iId; QHash prev_values; QHash next_values; IType type() { return POS_BOX; } }; class mem_change_link_box : public mem_command { public: mem_change_link_box(sem_mediator*, int); int m_iId; data_link prev; data_link next; data_link *link; void undo(); void redo(); IType type() { return CHANGE_LINK_BOX; } }; class mem_size_box : public mem_command { public: mem_size_box(sem_mediator*, int); void undo(); void redo(); int m_iId; QHash prev_values; QHash next_values; IType type() { return SIZE_BOX; } }; class mem_edit_link: public mem_command { public: mem_edit_link(sem_mediator*, int id); void undo(); void redo(); int m_iId; data_link prev; data_link next; data_link *link; QList items; IType type() { return EDIT_LINK; } }; class mem_import_box : public mem_command { public: mem_import_box(sem_mediator*, int id); void init(QList, QList); void undo(); void redo(); int m_iId; QList new_items; QList new_links; QList old_items; QList old_links; QFont m_iOldFont; QFont m_iNewFont; IType type() { return IMPORT_BOX; } }; class mem_matrix : public mem_command { public: mem_matrix(sem_mediator*, int); void init(data_box*); void undo(); void redo(); int m_iId; data_box* m_oBox; QList m_oOldRowSizes; QList m_oNewRowSizes; QList m_oOldColSizes; QList m_oNewColSizes; int m_iOldWW, m_iNewWW, m_iOldHH, m_iNewHH; IType type() { return SIZE_MATRIX; } }; class mem_class : public mem_command { public: mem_class(sem_mediator*, int); void init(data_box*); void undo(); void redo(); int m_iId; int m_iBoxId; data_box m_oOldBox; data_box m_oNewBox; IType type() { return CHANGE_CLASS_BOX; } }; class mem_diagram_properties : public mem_command { public: mem_diagram_properties(sem_mediator*, int); void undo(); void redo(); int m_iId; QFont m_oOldFont; QFont m_oNewFont; IType type() { return DIAGRAM_PROPERTIES; } }; #endif semantik-0.9.5/src/fig/res:zable.h000664 000000 000000 00000000666 12732552614 016745 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef resize_h #define resize_h #include #include "box_view.h" #include #define CTRLSIZE 8 class box_resize_point; class resizable { public: resizable() {} int m_iOrientation; virtual QPointF validate_point(box_resize_point *p, const QPointF & orig) = 0; virtual void commit_size(box_resize_point *p) = 0; virtual void freeze(bool b) = 0; }; #endif // resize_h semantik-0.9.5/src/fig/semantik_d_win.cpp000664 000000 000000 00000027324 12732552614 020372 0ustar00rootroot000000 000000 // Thomas Nagy 2013-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "semantik_d_win.h" #include "diagram_document.h" #include "sem_mediator.h" #include "box_view.h" # include "sembind.h" #include "filetree.h" semantik_d_win::semantik_d_win(QWidget *i_oParent) : KXmlGuiWindow(i_oParent) { setObjectName("semantik_d_win"); setWindowIcon(KIcon("semantik")); m_oTabWidget = new KTabWidget(this); m_oTabWidget->setCloseButtonEnabled(true); m_oTabWidget->setAutomaticResizeTabs(true); setCentralWidget(m_oTabWidget); m_oActiveDocument = NULL; connect(m_oTabWidget, SIGNAL(closeRequest(QWidget*)), this, SLOT(slot_remove_tab(QWidget*))); connect(m_oTabWidget, SIGNAL(currentChanged(int)), this, SLOT(slot_tab_changed(int))); KStandardAction::openNew(this, SLOT(slot_add_tab()), actionCollection()); KStandardAction::quit(this, SLOT(close()), actionCollection()); KStandardAction::save(this, NULL, actionCollection()); KStandardAction::saveAs(this, NULL, actionCollection()); KStandardAction::print(this, NULL, actionCollection()); KStandardAction::copy(this, NULL, actionCollection()); KStandardAction::open(this, SLOT(slot_open()), actionCollection()); KStandardAction::tipOfDay(this, SLOT(slot_tip_of_day()), actionCollection()); m_oUndoAct = KStandardAction::undo(this, NULL, actionCollection()); m_oUndoAct->setEnabled(false); m_oRedoAct = KStandardAction::redo(this, NULL, actionCollection()); m_oRedoAct->setEnabled(false); KAction *l_oFitZoom = KStandardAction::fitToPage(this, SLOT(fit_zoom()), actionCollection()); l_oFitZoom->setIcon(KIcon(notr("zoom-best-fit"))); l_oFitZoom->setShortcut(trUtf8("Ctrl+H")); m_oRecentFilesAct = KStandardAction::openRecent(this, SLOT(slot_recent(const KUrl&)), actionCollection()); QDockWidget *l_oDock = new QDockWidget(trUtf8("Files"), this); l_oDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea); addDockWidget(Qt::LeftDockWidgetArea, l_oDock); l_oDock->setObjectName(notr("VarsDock")); actionCollection()->addAction(notr("show_dock_files"), l_oDock->toggleViewAction()); m_oFileTree = new filetree(l_oDock); l_oDock->setWidget(m_oFileTree); setupGUI(QSize(1000, 800), Default, notr("semantik/semantik-dui.rc")); read_config(); setAutoSaveSettings(); statusBar()->showMessage(trUtf8("This is Semantik-d"), 2000); connect(m_oFileTree, SIGNAL(url_selected(const KUrl&)), this, SLOT(slot_recent(const KUrl&))); connect(this, SIGNAL(url_opened(const KUrl&)), this, SLOT(record_open_url(const KUrl&))); m_oFileTree->m_oModel->expandToUrl(KUrl("~")); } void semantik_d_win::wire_actions() { QAction *l_oTmp = actionCollection()->action(KStandardAction::name(KStandardAction::Save)); l_oTmp->disconnect(); if (m_oActiveDocument) { l_oTmp->setEnabled(true); connect(l_oTmp, SIGNAL(triggered()), m_oActiveDocument->m_oDiagramView, SLOT(slot_save())); } else { l_oTmp->setEnabled(false); } l_oTmp = actionCollection()->action(KStandardAction::name(KStandardAction::SaveAs)); l_oTmp->disconnect(); if (m_oActiveDocument) { l_oTmp->setEnabled(true); connect(l_oTmp, SIGNAL(triggered()), m_oActiveDocument->m_oDiagramView, SLOT(slot_export_to_file())); } else { l_oTmp->setEnabled(false); } l_oTmp = actionCollection()->action(KStandardAction::name(KStandardAction::Print)); l_oTmp->disconnect(); if (m_oActiveDocument) { l_oTmp->setEnabled(true); connect(l_oTmp, SIGNAL(triggered()), m_oActiveDocument->m_oDiagramView, SLOT(slot_print())); } else { l_oTmp->setEnabled(false); } l_oTmp = actionCollection()->action(KStandardAction::name(KStandardAction::Undo)); l_oTmp->disconnect(); if (m_oActiveDocument) { l_oTmp->setEnabled(true); connect(l_oTmp, SIGNAL(triggered()), m_oActiveDocument->m_oMediator, SLOT(slot_undo())); } else { l_oTmp->setEnabled(false); } l_oTmp = actionCollection()->action(KStandardAction::name(KStandardAction::Redo)); l_oTmp->disconnect(); if (m_oActiveDocument) { l_oTmp->setEnabled(true); connect(l_oTmp, SIGNAL(triggered()), m_oActiveDocument->m_oMediator, SLOT(slot_redo())); } else { l_oTmp->setEnabled(false); } l_oTmp = actionCollection()->action(KStandardAction::name(KStandardAction::Copy)); l_oTmp->disconnect(); if (m_oActiveDocument) { l_oTmp->setEnabled(true); connect(l_oTmp, SIGNAL(triggered()), m_oActiveDocument->m_oDiagramView, SLOT(slot_copy_picture())); } else { l_oTmp->setEnabled(false); } if (m_oActiveDocument) { connect(m_oActiveDocument->m_oDiagramView, SIGNAL(sig_message(const QString&, int)), statusBar(), SLOT(showMessage(const QString&, int))); connect(m_oActiveDocument, SIGNAL(sig_tab_name(diagram_document*, const KUrl&)), this, SLOT(slot_update_tab_text(diagram_document*, const KUrl&))); connect(m_oActiveDocument->m_oMediator, SIGNAL(enable_undo(bool, bool)), this, SLOT(slot_enable_undo(bool, bool))); m_oActiveDocument->m_oMediator->check_undo(true); connect(m_oActiveDocument->m_oMediator, SIGNAL(update_title()), this, SLOT(update_title())); update_title(); } } void semantik_d_win::slot_enable_undo(bool i_bUndo, bool i_bRedo) { actionCollection()->action(KStandardAction::name(KStandardAction::Undo))->setEnabled(i_bUndo); actionCollection()->action(KStandardAction::name(KStandardAction::Redo))->setEnabled(i_bRedo); } void semantik_d_win::slot_add_tab() { m_oActiveDocument = new diagram_document(m_oTabWidget); m_oActiveDocument->init(); int l_iIndex = m_oTabWidget->addTab(m_oActiveDocument, trUtf8("[Untitled]")); m_oTabWidget->setCurrentIndex(l_iIndex); wire_actions(); } void semantik_d_win::slot_remove_tab(QWidget* i_oWidget) { if (save_tab(i_oWidget)) { int l_iIdx = m_oTabWidget->indexOf(i_oWidget); m_oTabWidget->removeTab(l_iIdx); delete i_oWidget; // slot_tab_changed } } void semantik_d_win::slot_tab_changed(int i_iIndex) { m_oActiveDocument = static_cast(m_oTabWidget->currentWidget()); if (m_oActiveDocument != NULL) { emit url_opened(m_oActiveDocument->m_oDiagramView->m_oCurrentUrl); } wire_actions(); } void semantik_d_win::read_config() { KConfigGroup l_oConfig(KGlobal::config(), notr("General Options")); m_oRecentFilesAct->loadEntries(KGlobal::config()->group(notr("Recent Files"))); move(l_oConfig.readEntry(notr("winpos"), QPoint(0, 0))); //m_oMediator->m_sOutDir = l_oConfig.readEntry(notr("outdir"), notr("/tmp/")); //bind_node::set_var(notr("outdir"), m_oMediator->m_sOutDir); } void semantik_d_win::write_config() { KConfigGroup l_oConfig(KGlobal::config(), notr("General Options")); m_oRecentFilesAct->saveEntries(KGlobal::config()->group(notr("Recent Files"))); l_oConfig.writeEntry(notr("winpos"), pos()); //l_oConfig.writeEntry(notr("outdir"), bind_node::get_var(notr("outdir"))); l_oConfig.sync(); } bool semantik_d_win::queryClose() { write_config(); for (int i = 0; i < m_oTabWidget->count(); ++i) { if (!save_tab(m_oTabWidget->widget(i))) { return false; } } return true; } bool semantik_d_win::save_tab(QWidget *i_oWidget) { diagram_document *l_oDoc = static_cast(i_oWidget); if (l_oDoc->m_oMediator->m_bDirty) { QString l_oTitle = l_oDoc->m_oMediator->m_sLastSaved; if (l_oTitle.isEmpty()) l_oTitle = trUtf8("Untitled"); int l_o = KMessageBox::warningYesNoCancel(NULL, //this, trUtf8("The document \"%1\" has been modified.\nDo you want to save your changes or discard them?").arg(l_oTitle), trUtf8("Close Document"), KStandardGuiItem::save(), KStandardGuiItem::discard()); switch (l_o) { case KMessageBox::Yes: { if (!l_oDoc->m_oDiagramView->slot_save()) return false; } case KMessageBox::No: return true; default: return false; } } return true; } void semantik_d_win::slot_update_tab_text(diagram_document* i_oDoc, const KUrl & i_oUrl) { int l_iIndex = m_oTabWidget->indexOf(i_oDoc); if (l_iIndex > -1) { m_oTabWidget->setTabText(l_iIndex, i_oUrl.fileName()); } emit url_opened(i_oUrl); } void semantik_d_win::slot_open() { KUrl l_o = KFileDialog::getOpenUrl(KUrl(notr("kfiledialog:///document")), trUtf8("*.semd|Semantik diagram (*.semd)"), this, trUtf8("Choose a file to open")); if (l_o.isEmpty()) return; // file already open in a tab for (int i = 0; i < m_oTabWidget->count(); ++i) { diagram_document *l_oDoc = static_cast(m_oTabWidget->widget(i)); if (l_oDoc->m_oDiagramView->m_oCurrentUrl.equals(l_o)) { m_oTabWidget->setCurrentWidget(l_oDoc); emit url_opened(m_oActiveDocument->m_oDiagramView->m_oCurrentUrl); return; } } // just open a new tab diagram_document *l_oTmp = m_oActiveDocument; m_oActiveDocument = new diagram_document(m_oTabWidget); m_oActiveDocument->init(); if (m_oActiveDocument->m_oDiagramView->import_from_file(l_o)) { int l_iIndex = m_oTabWidget->addTab(m_oActiveDocument, m_oActiveDocument->m_oDiagramView->m_oCurrentUrl.fileName()); m_oTabWidget->setCurrentIndex(l_iIndex); m_oActiveDocument->m_oMediator->m_oUndoStack.clear(); m_oActiveDocument->m_oMediator->set_dirty(false); wire_actions(); emit url_opened(m_oActiveDocument->m_oDiagramView->m_oCurrentUrl); } else { delete m_oActiveDocument; m_oActiveDocument = l_oTmp; } } void semantik_d_win::fit_zoom() { if (m_oActiveDocument != NULL) { m_oActiveDocument->m_oDiagramView->fit_zoom(); } } void semantik_d_win::slot_recent(const KUrl& i_oUrl) { if (i_oUrl.isEmpty()) return; // file already open in a tab for (int i = 0; i < m_oTabWidget->count(); ++i) { diagram_document *l_oDoc = static_cast(m_oTabWidget->widget(i)); if (l_oDoc->m_oDiagramView->m_oCurrentUrl.equals(i_oUrl)) { m_oTabWidget->setCurrentWidget(l_oDoc); emit url_opened(m_oActiveDocument->m_oDiagramView->m_oCurrentUrl); return; } } diagram_document *l_oTmp = m_oActiveDocument; m_oActiveDocument = new diagram_document(m_oTabWidget); m_oActiveDocument->init(); if (m_oActiveDocument->m_oDiagramView->import_from_file(i_oUrl)) { int l_iIndex = m_oTabWidget->addTab(m_oActiveDocument, m_oActiveDocument->m_oDiagramView->m_oCurrentUrl.fileName()); m_oTabWidget->setCurrentIndex(l_iIndex); emit url_opened(m_oActiveDocument->m_oDiagramView->m_oCurrentUrl); m_oActiveDocument->m_oMediator->m_oUndoStack.clear(); m_oActiveDocument->m_oMediator->set_dirty(false); wire_actions(); emit url_opened(m_oActiveDocument->m_oDiagramView->m_oCurrentUrl); } else { delete m_oActiveDocument; m_oActiveDocument = l_oTmp; } } void semantik_d_win::record_open_url(const KUrl & i_oUrl) { if (!i_oUrl.isValid()) return; m_oRecentFilesAct->addUrl(i_oUrl); m_oFileTree->m_oModel->expandToUrl(i_oUrl); } void semantik_d_win::slot_properties() { } void semantik_d_win::slot_generate() { } void semantik_d_win::slot_tip_of_day() { } void semantik_d_win::print_current(KUrl i_oUrl, QPair i_oP) { if (m_oActiveDocument != NULL) { m_oActiveDocument->m_oDiagramView->batch_print_map(i_oUrl.path(), i_oP); } } void semantik_d_win::update_title() { QString mod; if (m_oActiveDocument->m_oMediator->m_bDirty) mod = trUtf8(" [Modified] "); QString txt; if (m_oActiveDocument->m_oMediator->m_oCurrentUrl.path().isEmpty()) { txt = trUtf8("Semantik Diagram %1").arg(mod); } else { txt = trUtf8("%1 %2 - Semantik Diagram").arg(m_oActiveDocument->m_oMediator->m_oCurrentUrl.path(), mod); //m_oRecentFilesAct->addUrl(m_oMediator->m_oCurrentUrl); // TODO } setWindowTitle(txt); } #include "semantik_d_win.moc" semantik-0.9.5/src/fig/semantik_d_win.h000664 000000 000000 00000002414 12732552614 020030 0ustar00rootroot000000 000000 // Thomas Nagy 2013-2015 GPLV3 %: ifndef SEMANTIKD_H #define SEMANTIKD_H #include %: inc\ lude "con.\ h" #inc\ lude %: include class KRecentFilesAction; class KToolBar; class KAction; class QAction; class QActionGroup; class QListWidget; class KMenu; class QTextEdit; class KTabWidget; class filetree; class diagram_document; class semantik_d_win : public KXmlGuiWindow { Q_OBJECT public: semantik_d_win(QWidget *i_oParent=0); diagram_document *m_oActiveDocument; KAction *m_oUndoAct; KAction *m_oRedoAct; KRecentFilesAction* m_oRecentFilesAct; KTabWidget *m_oTabWidget; filetree *m_oFileTree; void read_config(); void write_config(); bool queryClose(); void wire_actions(); void print_current(KUrl i_oUrl, QPair); public slots: void slot_open(); void slot_enable_undo(bool, bool); void slot_recent(const KUrl &); void slot_properties(); void slot_generate(); bool save_tab(QWidget*); void slot_tip_of_day(); void slot_add_tab(); void slot_tab_changed(int); void slot_remove_tab(QWidget*); void slot_update_tab_text(diagram_document*, const KUrl &); void fit_zoom(); void record_open_url(const KUrl&); void update_title(); signals: void url_opened(const KUrl&); }; #endif semantik-0.9.5/src/fig/semd.cpp000664 000000 000000 00000005027 12732552614 016323 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include "con.h" #include #include #include #include #include #include #include #include #include #include #include "semantik_d_win.h" static const char description[] = I18N_NOOP("A tool for editing and organizing Semantik diagrams"); static const char version[] = VERSION; int grid_int(int x) { return GRID * (x / GRID); } int main(int i_iArgc, char **i_iArgv) { int l_iSeed; std::ifstream l_oInfile("/dev/urandom", std::ios::binary | std::ios::in); l_oInfile.read(reinterpret_cast(&l_iSeed), sizeof(int)); l_oInfile.close(); srandom(l_iSeed); KCmdLineOptions options; options.add("+[url]", ki18n("A file to open on startup")); options.add("o ", ki18n("An output file for exporting the diagram")); options.add("width ", ki18n("Diagram width for printing"), "0"); options.add("height ", ki18n("Diagram height for printing"), "0"); KAboutData l_o("semantik-d", "semantik", ki18n("Semantik-d"), version, ki18n(description), KAboutData::License_GPL_V3, ki18n("(C) 2013-2015 Thomas Nagy"), KLocalizedString()); l_o.setBugAddress("https://github.com/ita1024/semantik/issues"); l_o.addAuthor(ki18n("Thomas Nagy"), KLocalizedString()); KCmdLineArgs::init(i_iArgc, i_iArgv, &l_o); KCmdLineArgs::addCmdLineOptions(options); KApplication l_oApp; KGlobal::locale()->insertCatalog("libkdeedu"); KGlobal::locale()->insertCatalog("semantik"); semantik_d_win *l_oMainWin = new semantik_d_win; const KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); if (!args->getOption("o").isEmpty()) { if (!args->url(0).isValid()) { return 1; } else { KUrl url(args->getOption("o")); if (!url.isValid()) { return 2; } int l_oWidth = args->getOption("width").toInt(); if (l_oWidth < 0 or l_oWidth > 50000) return 69; int l_oHeight = args->getOption("height").toInt(); if (l_oHeight < 0 or l_oHeight > 50000) return 70; QPair l_oP(l_oWidth, l_oHeight); l_oMainWin->slot_recent(args->url(0)); l_oMainWin->print_current(url, l_oP); return 0; } } else { if (args->count()) { for (int i = 0; i < args->count(); ++i) { if (!args->url(i).isValid()) { continue; } l_oMainWin->slot_recent(args->url(i)); } } else { l_oMainWin->slot_add_tab(); } l_oMainWin->show(); } return l_oApp.exec(); } semantik-0.9.5/src/filters/000775 000000 000000 00000000000 12732552614 015566 5ustar00rootroot000000 000000 semantik-0.9.5/src/filters/fvym.py000664 000000 000000 00000007102 12732552614 017121 0ustar00rootroot000000 000000 #! /usr/bin/env python # encoding: utf-8 # Thomas Nagy, 2007-2015 (ita) import os, sys, tarfile, StringIO from xml.sax import make_parser from xml.sax.handler import ContentHandler def debug(s): sys.stderr.write(s) def protect(t): lst = t.split('&') t = "&".join(lst) lst = t.split('<') t = "<".join(lst) lst = t.split('>') t = ">".join(lst) lst = t.split('"') t = """.join(lst) return t head = """ """ textitem = """ """ lst_vars = ['id', 'summary', 'text', 'len', 'comment', 'pic_location', 'pic_caption', 'pic_comment', 'tbl_rows', 'tbl_cols', 'c1', 'c2', 'color', 'custom_name', 'custom_border', 'custom_inner', 'custom_text'] rep = { 'text':'text', 'summary':'summary', 'xpos':'c2', 'ypos':'c1', 'id':'id', } class FFHandler(ContentHandler): def __init__(self): self.buf = [] self.out = [] self.trucs = [] self.cur = 0 self.count = 1 self.ids = [] # stack self.links = [] # tuples self.headings={} self.ids.append(self.count) def startElement(self, name, attrs): self.buf = [] if name == 'vymmap': self.out.append(head) if name == 'branch': self.count += 1 #self.cur += 1 #debug(str(self.cur)) id = self.count if len(self.ids) > 0: par = self.ids[-1] self.links.append( (par, id) ) self.ids.append(id) def endElement(self, name): txt = "".join(self.buf) if name == 'branch' or name == 'mapcenter': #self.cur -= 1 #debug(str(self.cur)) id = self.ids[-1] summary = self.headings[id] self.out.append('\n' % (id, summary)) self.ids=self.ids[:-1] elif name == 'vymmap': for (k, v) in self.links: self.out.append('\n' % (k, v)) self.out.append('') elif name == 'heading': # be careful with the order id = self.ids[-1] self.headings[id] = txt elif name == 'htmlnote': # fuck, we have to parse the html code here :-/ pass def characters(self, cars): self.buf.append(cars) def parse_string(s): parser = make_parser() curHandler = FFHandler() parser.setContentHandler(curHandler) parser.parse(StringIO.StringIO(str(s))) return "".join(curHandler.out) def parse_file(infile): import zipfile zut = zipfile.ZipFile(infile, "r") truc = None for filename in zut.namelist(): if filename.endswith('.xml'): truc = zut.read(filename) truc = truc.replace('', '') truc = parse_string(truc) #file = open("/tmp/con.xml", "w") #file.write(str(truc)) #file.close() #debug(truc.encode('utf-8')) return truc.encode('utf-8') semantik-0.9.5/src/filters/kdissert.py000664 000000 000000 00000007544 12732552614 020002 0ustar00rootroot000000 000000 #! /usr/bin/env python # encoding: utf-8 # Thomas Nagy, 2007-2015 (ita) import os, sys, tarfile, StringIO from xml.sax import make_parser from xml.sax.handler import ContentHandler def debug(s): sys.stderr.write(s) def protect(t): lst = t.split('&') t = "&".join(lst) lst = t.split('<') t = "<".join(lst) lst = t.split('>') t = ">".join(lst) lst = t.split('"') t = """.join(lst) return t head = """ """ textitem = """ """ lst_vars = ['id', 'summary', 'text', 'len', 'comment', 'pic_location', 'pic_caption', 'pic_comment', 'tbl_rows', 'tbl_cols', 'c1', 'c2', 'color', 'custom_name', 'custom_border', 'custom_inner', 'custom_text'] rep = { 'text':'text', 'summary':'summary', 'xpos':'c2', 'ypos':'c1', 'id':'id', } class QTXMLHandler(ContentHandler): def __init__(self): self.buf = [] self.out = [] self.trucs = [] self.out.append(head) def init_tbl(self): self.tbl = {} g=self.tbl for i in lst_vars: g[i] = '' def startElement(self, name, attrs): self.links = [] self.buf = [] if name == 'meta': def g(x): return attrs.get(x, '') #fname = g('fname') #sname = g('sname') #email = g('email') #organ = g('organization') self.out.append('') elif name == 'item': self.tbl = {} else: self.buf = [] def endElement(self, name): txt = "".join(self.buf) if name == 'item': self.out.append('\n') elif name == 'child': self.trucs.append([1+int(self.tbl['id']), 1+int("".join(self.buf))]) elif name in rep: #debug("found name %s \n" % name) self.tbl[rep[name]]=txt elif name == 'kdissertdoc': for i in self.trucs: self.out.append('' % (i[0], i[1])) self.out.append('') def characters(self, cars): self.buf.append(cars) def parse_string(s): parser = make_parser() curHandler = QTXMLHandler() parser.setContentHandler(curHandler) parser.parse(StringIO.StringIO(str(s))) return "".join(curHandler.out) def parse_file(infile): tar = tarfile.open(infile) for tarinfo in tar: tar.extract(tarinfo) # offset +1 lst = os.listdir('.') map = {} for x in lst: if x[:4] != 'pic-': continue y = (x[4:].split('.'))[0] map[y] = x k = map.keys() k.sort() k.reverse() for u in k: name = map[u] ext = name.split('.')[1] os.rename(name, 'pic-%d.%s' % (int(u)+1, ext)) tar.close() file = open('maindoc.xml', 'rb') txt = file.read() file.close() os.remove('maindoc.xml') truc = txt.replace('', '') truc = parse_string(truc) #file = open("/tmp/con.xml", "w") #file.write(truc) #file.close() #debug(str(type(truc))) return truc.encode('utf-8') semantik-0.9.5/src/filters/main.py000664 000000 000000 00000001653 12732552614 017071 0ustar00rootroot000000 000000 #! /usr/bin/env python # encoding: utf-8 # Thomas Nagy, 2007-2015 (ita) import os, sys, tarfile filters = sembind.get_var('filter_dir') sys.path = [filters]+sys.path tmpdir = sembind.get_var('temp_dir') infile = sembind.get_var('pname') def debug(s): sys.stderr.write(s) sys.stderr.write('\n') sys.stderr.flush() os.chdir(tmpdir) ret = '' name = infile.lower() if sys.platform == 'win32' or sys.platform == 'darwin': ret = '' elif name.endswith('.kdi'): import kdissert ret = kdissert.parse_file(infile) elif name.endswith('.sem') or name.endswith('.semd'): import semantik ret = semantik.parse_file(infile) # FIXME null bytes should not be allowed in the first place :-( ret = ret.replace('\x00', '') elif name.endswith('.mm'): import others ret = others.parse_file(infile) elif name.endswith('.vym'): import fvym ret = fvym.parse_file(infile) else: debug('Unsupported file format') sembind.set_var("fulldoc", ret) semantik-0.9.5/src/filters/others.py000664 000000 000000 00000006312 12732552614 017446 0ustar00rootroot000000 000000 #! /usr/bin/env python # encoding: utf-8 # Thomas Nagy, 2007-2015 (ita) import os, sys, tarfile, StringIO from xml.sax import make_parser from xml.sax.handler import ContentHandler def debug(s): sys.stderr.write(s) def protect(t): lst = t.split('&') t = "&".join(lst) lst = t.split('<') t = "<".join(lst) lst = t.split('>') t = ">".join(lst) lst = t.split('"') t = """.join(lst) return t head = """ """ textitem = """ """ lst_vars = ['id', 'summary', 'text', 'len', 'comment', 'pic_location', 'pic_caption', 'pic_comment', 'tbl_rows', 'tbl_cols', 'c1', 'c2', 'color', 'custom_name', 'custom_border', 'custom_inner', 'custom_text'] rep = { 'text':'text', 'summary':'summary', 'xpos':'c2', 'ypos':'c1', 'id':'id', } class FFHandler(ContentHandler): def __init__(self): self.buf = [] self.out = [] self.trucs = [] self.cur = 0 self.count = 1 self.ids = [] # stack self.links = [] # tuples def startElement(self, name, attrs): self.buf = [] if name == 'map': self.out.append(head) if name == 'node': self.count += 1 #self.cur += 1 #debug(str(self.cur)) id = self.count if len(self.ids) > 0: par = self.ids[-1] self.links.append( (par, id) ) self.ids.append(id) text = attrs.get('TEXT', '') text = protect(text) self.out.append('\n' % (id, text)) def endElement(self, name): txt = "".join(self.buf) if name == 'node': #self.cur -= 1 #debug(str(self.cur)) self.ids=self.ids[:-1] elif name == 'map': for (k, v) in self.links: self.out.append('\n' % (k, v)) self.out.append('') def characters(self, cars): self.buf.append(cars) def parse_string(s): parser = make_parser() curHandler = FFHandler() parser.setContentHandler(curHandler) parser.parse(StringIO.StringIO(str(s))) return "".join(curHandler.out) def parse_file(infile): file = open(infile, 'rb') txt = file.read() file.close() truc = txt.replace('', '') truc = parse_string(truc) #file = open("/tmp/con.xml", "w") #file.write(str(truc)) #file.close() #debug(truc.encode('utf-8')) return truc.encode('utf-8') semantik-0.9.5/src/filters/semantik.py000664 000000 000000 00000003132 12732552614 017752 0ustar00rootroot000000 000000 #! /usr/bin/env python # encoding: utf-8 # Thomas Nagy, 2007-2015 import os, sys, tarfile, string # parsing xml properly is less simple than it seems def filter(txt): out = [] buf = "" replace = "" for x in txt: if 0: pass elif replace == '' and x == ' ': replace = ' ' elif replace == ' ' and x == 'i': replace = ' i' elif replace == ' ' and x == 'p': replace = ' p' elif replace == ' ' and x == 'v': replace = ' v' elif replace == ' i' and x == 'd': replace = ' id' elif replace == ' id' and x == '=': replace = ' id=' elif replace == ' p' and x == '=': replace = ' p=' elif replace == ' v' and x == '=': replace = ' v=' elif replace == ' id=' and x == '"': replace = ' id="' elif replace == ' p=' and x == '"': replace = ' p="' elif replace == ' v=' and x == '"': replace = ' v="' elif (replace == ' id="' or replace == ' p="' or replace == ' v="') and x in string.digits: buf+=x elif (replace == ' id="' or replace == ' p="' or replace == ' v="') and x=='"': val = int(buf) + 1 buf = "" replace += '%d"' out.append(replace % val) replace = '' else: if replace: out.append(replace) out.append(x) replace = '' ret = "".join(out) #file = open('/tmp/de.xml', 'w') #file.write(ret) #file.close() return ret def parse_file(infile): tar = tarfile.open(infile) for tarinfo in tar: tar.extract(tarinfo) tar.close() try: with open('con.xml', 'rb') as f: txt = f.read() os.remove('con.xml') except Exception: # will remove this at version >= 0.7 with open('com.xml', 'rb') as f: txt = filter(file.read()) os.remove('com.xml') return txt semantik-0.9.5/src/flags/000775 000000 000000 00000000000 12732552614 015212 5ustar00rootroot000000 000000 semantik-0.9.5/src/flags/README000664 000000 000000 00000000117 12732552614 016071 0ustar00rootroot000000 000000 The icons under this directory are from KDE. They are Licensed under the LGPL. semantik-0.9.5/src/flags/flag_delay.svg000664 000000 000000 00000025077 12732552614 020035 0ustar00rootroot000000 000000 Part of the Flat Icon Collection (Thu Aug 26 14:31:40 2004)
  • </Agent> </publisher> <creator id="creator26"> <Agent id="Agent27" about=""> <title id="title28">Danny Allen Danny Allen image/svg+xml en image/svg+xml semantik-0.9.5/src/flags/flag_idea.svg000664 000000 000000 00000025011 12732552614 017625 0ustar00rootroot000000 000000 Part of the Flat Icon Collection (Thu Aug 26 14:31:40 2004)
  • </Agent> </publisher> <creator id="creator32"> <Agent id="Agent33" about=""> <title id="title34">Danny Allen Danny Allen image/svg+xml en image/svg+xml semantik-0.9.5/src/flags/flag_look.svg000664 000000 000000 00000013266 12732552614 017700 0ustar00rootroot000000 000000 Part of the Flat Icon Collection (Thu Aug 26 14:38:01 2004)
  • </Agent> </publisher> <creator id="creator23"> <Agent id="Agent24" about=""> <title id="title25">Danny Allen Danny Allen image/svg+xml en image/svg+xml semantik-0.9.5/src/flags/flag_lunch.svg000664 000000 000000 00000021046 12732552614 020040 0ustar00rootroot000000 000000 Part of the Flat Icon Collection (Thu Aug 26 14:31:40 2004)
  • </Agent> </publisher> <creator id="creator24"> <Agent about="" id="Agent25"> <title id="title26">Danny Allen Danny Allen image/svg+xml en image/svg+xml semantik-0.9.5/src/flags/flag_money.svg000664 000000 000000 00000020113 12732552614 020050 0ustar00rootroot000000 000000 Part of the Flat Icon Collection (Thu Aug 26 14:38:01 2004)
  • </Agent> </publisher> <creator id="creator22"> <Agent about="" id="Agent23"> <title id="title24">Danny Allen Danny Allen image/svg+xml en image/svg+xml semantik-0.9.5/src/flags/flag_ok.svg000664 000000 000000 00000014054 12732552614 017341 0ustar00rootroot000000 000000 Part of the Flat Icon Collection (Thu Aug 26 14:38:01 2004)
  • </Agent> </publisher> <creator id="creator19"> <Agent id="Agent20" about=""> <title id="title21">Danny Allen Danny Allen image/svg+xml en image/svg+xml semantik-0.9.5/src/flags/flag_people.svg000664 000000 000000 00000015467 12732552614 020225 0ustar00rootroot000000 000000 Part of the Flat Icon Collection (Thu Aug 26 14:38:01 2004)
  • </Agent> </publisher> <creator id="creator21"> <Agent about="" id="Agent22"> <title id="title23">Danny Allen Danny Allen image/svg+xml en image/svg+xml semantik-0.9.5/src/flags/flag_phone.svg000664 000000 000000 00000031510 12732552614 020035 0ustar00rootroot000000 000000 Part of the Flat Icon Collection (Thu Aug 26 14:38:01 2004)
  • </Agent> </publisher> <creator id="creator35"> <Agent id="Agent36" about=""> <title id="title37">Danny Allen Danny Allen image/svg+xml en image/svg+xml semantik-0.9.5/src/flags/flag_star.svg000664 000000 000000 00000010613 12732552614 017676 0ustar00rootroot000000 000000 Part of the Flat Icon Collection (Thu Aug 26 14:40:13 2004)
  • </Agent> </publisher> <creator id="creator21"> <Agent about="" id="Agent22"> <title id="title23">Danny Allen Danny Allen image/svg+xml en image/svg+xml semantik-0.9.5/src/flags/flag_stop.svg000664 000000 000000 00000014440 12732552614 017714 0ustar00rootroot000000 000000 Part of the Flat Icon Collection (Thu Aug 26 14:38:01 2004)
  • </Agent> </publisher> <creator id="creator17"> <Agent id="Agent18" about=""> <title id="title19">Danny Allen Danny Allen image/svg+xml en image/svg+xml semantik-0.9.5/src/flags/flag_talk.svg000664 000000 000000 00000011166 12732552614 017664 0ustar00rootroot000000 000000 Part of the Flat Icon Collection (Thu Aug 26 14:31:40 2004) Danny Allen Danny Allen image/svg+xml en image/svg+xml semantik-0.9.5/src/flags/flag_target.svg000664 000000 000000 00000014540 12732552614 020216 0ustar00rootroot000000 000000 Part of the Flat Icon Collection (Thu Aug 26 14:38:01 2004) Danny Allen Danny Allen image/svg+xml en image/svg+xml semantik-0.9.5/src/flags/flag_time.svg000664 000000 000000 00000013272 12732552614 017667 0ustar00rootroot000000 000000 Part of the Flat Icon Collection (Thu Aug 26 14:38:01 2004)
  • </Agent> </publisher> <creator id="creator30"> <Agent about="" id="Agent31"> <title id="title32">Danny Allen Danny Allen image/svg+xml en image/svg+xml semantik-0.9.5/src/flags/flag_tune.svg000664 000000 000000 00000013364 12732552614 017706 0ustar00rootroot000000 000000 Part of the Flat Icon Collection (Thu Aug 26 14:31:40 2004) Danny Allen Danny Allen image/svg+xml en image/svg+xml semantik-0.9.5/src/flags/flag_unknown.svg000664 000000 000000 00000021204 12732552614 020422 0ustar00rootroot000000 000000 Part of the Flat Icon Collection (Thu Aug 26 14:31:40 2004) Danny Allen Danny Allen image/svg+xml en image/svg+xml semantik-0.9.5/src/flags/flag_write.svg000664 000000 000000 00000023705 12732552614 020065 0ustar00rootroot000000 000000 Part of the Flat Icon Collection (Thu Aug 26 14:31:40 2004)
  • </Agent> </publisher> <creator id="creator34"> <Agent id="Agent35" about=""> <title id="title36">Danny Allen Danny Allen image/svg+xml en image/svg+xml semantik-0.9.5/src/generator_dialog.cpp000664 000000 000000 00000007256 12732552614 020141 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "generator_dialog.h" generator_dialog::generator_dialog(QWidget *i_oParent, QList i_oLst): KDialog(i_oParent), m_oLst(i_oLst) { QWidget *widget = new QWidget(this); setCaption(trUtf8("Generate documents")); setButtons(KDialog::Ok | KDialog::Cancel); QGridLayout *l_oGridLayout = new QGridLayout(widget); QLabel *label = new QLabel(widget); label->setText(trUtf8("Generators")); QLabel *label2 = new QLabel(widget); label2->setText(trUtf8("Description")); l_oGridLayout->addWidget(label, 0, 0, 1, 2); l_oGridLayout->addWidget(label2, 0, 2, 1, 1); m_oTree = new QTreeWidget(widget); m_oTree->header()->hide(); l_oGridLayout->addWidget(m_oTree, 1, 0, 1, 2); m_oTree->setFocusPolicy(Qt::NoFocus); m_oTextEdit = new QTextEdit(widget); m_oTextEdit->setReadOnly(true); l_oGridLayout->addWidget(m_oTextEdit, 1, 2, 1, 1); m_oTextEdit->setFocusPolicy(Qt::NoFocus); label = new QLabel(widget); label->setText(trUtf8("Name")); l_oGridLayout->addWidget(label, 2, 0, 1, 1); m_oName = new QLineEdit(widget); l_oGridLayout->addWidget(m_oName, 2, 1, 1, 2); label = new QLabel(widget); label->setText(trUtf8("Location")); l_oGridLayout->addWidget(label, 3, 0, 1, 1); m_oLocation = new QLineEdit(widget); l_oGridLayout->addWidget(m_oLocation, 3, 1, 1, 2); QCompleter *l_oCompleter = new QCompleter(); QDirModel *l_oDirModel = new QDirModel(l_oCompleter); l_oDirModel->setFilter(QDir::AllDirs | QDir::Files | QDir::CaseSensitive | QDir::NoDotAndDotDot); l_oDirModel->setNameFilters(QStringList()<<"*.jpg"<<"*.png"<<"*.JPG"<<"*.PNG"<<"*.jpeg"<<"*.JPEG"); l_oCompleter->setModel(l_oDirModel); m_oLocation->setCompleter(l_oCompleter); foreach (template_entry l_o, m_oLst) { QTreeWidgetItem *l_oItem = new QTreeWidgetItem(m_oTree); l_oItem->setText(0, l_o.m_sName); l_oItem->setData(0, Qt::UserRole+3, l_o.m_sFile); l_oItem->setData(0, Qt::UserRole+4, l_o.m_sTip); } connect(m_oTree, SIGNAL(itemClicked(QTreeWidgetItem *, int)), this, SLOT(selection_changed(QTreeWidgetItem *, int))); setMainWidget(widget); QSize size(421, 250); size = size.expandedTo(minimumSizeHint()); resize(size); } void generator_dialog::selection_changed(QTreeWidgetItem * i_oItem, int i_oCol) { if (!i_oItem) { m_oTextEdit->clear(); } else { m_oTextEdit->setText(i_oItem->data(0, Qt::UserRole+4).toString()); m_sCurrent = i_oItem->data(0, Qt::UserRole+3).toString(); m_sShortName = i_oItem->text(0); } } void generator_dialog::slotButtonClicked(int button) { if (button == KDialog::Ok) { if (m_sCurrent.length()<2) { KMessageBox::sorry(this, trUtf8("No document generator chosen."), trUtf8("Missing data")); return; } QFileInfo l_oFi(m_oLocation->text()); if (!l_oFi.isDir() || !l_oFi.isWritable()) { KMessageBox::sorry(this, trUtf8("Invalid output directory %1").arg(m_oLocation->text()), trUtf8("Missing location")); return; } accept(); } else { KDialog::slotButtonClicked(button); } } void generator_dialog::activate_from_name(const QString &i_s) { QList l_o = m_oTree->findItems(i_s, Qt::MatchFixedString, 0); if (l_o.size() == 1) { m_sShortName = i_s; m_oTree->setCurrentItem(l_o[0]); selection_changed(l_o[0], 0); } } #include "generator_dialog.moc" semantik-0.9.5/src/generator_dialog.h000664 000000 000000 00000001262 12732552614 017575 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef GENERATOR_DIALOG_H #define GENERATOR_DIALOG_H #include #include "con.h" #include "template_entry.h" class QLineEdit; class QTextEdit; class QTreeWidgetItem; class generator_dialog : public KDialog { Q_OBJECT public: generator_dialog(QWidget *i_oParent, QList i_oLst); QList m_oLst; QLineEdit *m_oLocation; QLineEdit *m_oName; QTextEdit *m_oTextEdit; QString m_sCurrent; QTreeWidget *m_oTree; QString m_sShortName; public slots: void selection_changed(QTreeWidgetItem *i_o, int i_oCol); void slotButtonClicked(int button); void activate_from_name(const QString &i_s); }; #endif semantik-0.9.5/src/image_view.cpp000664 000000 000000 00000014535 12732552614 016746 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "con.h" #include "data_item.h" #include "sem_mediator.h" #include "image_view.h" #include "mem_command.h" image_view::image_view(QWidget *i_oParent, sem_mediator *i_oControl) : QWidget(i_oParent) { setCursor(Qt::PointingHandCursor); m_oMediator = i_oControl; m_iId = NO_ITEM; setContextMenuPolicy(Qt::CustomContextMenu); connect(this, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(context_menu(const QPoint&))); m_oChangePictureAction = new QAction(trUtf8("Change picture"), this); connect(m_oChangePictureAction, SIGNAL(triggered()), this, SLOT(change_pic())); addAction(m_oChangePictureAction); m_oClearPictureAction = new QAction(trUtf8("Clear picture"), this); connect(m_oClearPictureAction, SIGNAL(triggered()), this, SLOT(clear_pic())); addAction(m_oClearPictureAction); setAcceptDrops(true); m_oMenu = NULL; /* QPalette l_oPalette = m_oSelect->palette(); l_oPalette.setBrush(QPalette::Inactive, QPalette::Base, QColor(230, 230, 230)); l_oPalette.setBrush(QPalette::Disabled, QPalette::Base, QColor(230, 230, 230)); m_oSelect->setPalette(l_oPalette); */ } void image_view::paintEvent(QPaintEvent*) { QPainter p(this); QRect r = rect(); if (!r.width() or !r.height()) return; if (m_oPixmap.isNull()) { if (m_iId) { p.drawText(r, Qt::AlignCenter, trUtf8("Click to set a picture")); } else { p.drawText(r, Qt::AlignCenter, trUtf8("Select an item on the map")); } return; } QRect rp = m_oPixmap.rect(); if (rp.width() < r.width() && rp.height() < r.height()) { QRect ru((r.width() - rp.width())/2, (r.height() - rp.height())/2, rp.width(), rp.height()); p.drawPixmap(ru, m_oPixmap); } else if (rp.width() * r.height() / rp.height() - r.width() > 0) { int a = r.width(); int b = rp.height() * r.width() / rp.width(); QRect ru( 0, qAbs(r.height() - b) / 2, a, b); p.drawPixmap(ru, m_oPixmap); } else { int a = rp.width() * r.height() / rp.height(); int b = r.height(); QRect ru( qAbs(r.width() - a) / 2, 0, a, b); p.drawPixmap(ru, m_oPixmap); } } void image_view::notify_select(const QList& unsel, const QList& sel) { bool one = (sel.size() == 1); if (one) { m_iId = sel.at(0); data_item *l_oData = m_oMediator->m_oItems.value(m_iId); m_oPixmap = l_oData->getPix(); } else { m_oPixmap = QPixmap(); m_iId = NO_ITEM; } repaint(); } void image_view::clear_pic() { data_item *l_oData = m_oMediator->m_oItems.value(m_iId); mem_pic *mem = new mem_pic(m_oMediator); mem->sel = l_oData; mem->m_iOldId = l_oData->m_iPicId; mem->m_iNewId = NO_ITEM; mem->apply(); } #include "image_view.moc" bool image_view::event(QEvent *i_oEvent) { if (i_oEvent->type() == QEvent::ToolTip) { if (m_iId) { QHelpEvent *l_oEv = static_cast(i_oEvent); data_item *l_oData = m_oMediator->m_oItems.value(m_iId); QToolTip::showText(l_oEv->globalPos(), l_oData->m_sPicLocation); } } return QWidget::event(i_oEvent); } void image_view::context_menu(const QPoint& i_o) { if (!m_iId) return; if (!m_oMenu) { m_oMenu = new QMenu(this); m_oMenu->addAction(m_oChangePictureAction); m_oMenu->addAction(m_oClearPictureAction); } m_oMenu->popup(mapToGlobal(i_o)); } void image_view::mouseReleaseEvent(QMouseEvent *i_o) { if (!m_iId || !rect().contains(i_o->pos()) || i_o->button() != Qt::LeftButton) { i_o->ignore(); return; } i_o->accept(); change_pic(); } void image_view::change_pic() { KUrl l_o = KFileDialog::getOpenUrl(KUrl(notr("kfiledialog:///image")), trUtf8("*.png *.jpg *.jpeg *.gif|Image Files (*.png *.jpg *.jpeg *.gif)"), this, trUtf8("Choose a picture")); do_change_pic(l_o); } void image_view::do_change_pic(const KUrl& l_sText) { data_item *l_oData = m_oMediator->m_oItems.value(m_iId); int id = m_oMediator->next_pic_seq(); bool l_bRet = m_oMediator->save_and_load_picture(l_sText, id); if (!l_bRet) { emit sig_message(trUtf8("Could not load the picture"), 20000); return; } mem_pic *mem = new mem_pic(m_oMediator); mem->sel = l_oData; mem->m_iOldId = l_oData->m_iPicId; mem->m_iNewId = id; mem->apply(); } void image_view::dragEnterEvent(QDragEnterEvent *i_o) { if (!m_iId) return; const QMimeData *l_oMimeData = i_o->mimeData(); if (l_oMimeData->hasText() || l_oMimeData->hasUrls()) // TODO handle image data || l_oMimeData->hasImage()) { i_o->acceptProposedAction(); } } void image_view::dragMoveEvent(QDragMoveEvent *i_o) { if (!m_iId) return; i_o->acceptProposedAction(); } void image_view::dropEvent(QDropEvent *i_o) { if (!m_iId) return; const QMimeData *l_oMimeData = i_o->mimeData(); if (l_oMimeData->hasUrls()) { QList urlList = l_oMimeData->urls(); for (int i = 0; i < urlList.size() && i < 32; ++i) { QUrl l_o = urlList.at(i); if (!l_o.isValid()) continue; do_change_pic(l_o.toLocalFile()); break; } } else if (l_oMimeData->hasText()) { qDebug()<<"new picture is "<text(); do_change_pic(l_oMimeData->text()); } //else if (l_oMimeData->hasImage()) TODO handle image data i_o->acceptProposedAction(); } void image_view::dragLeaveEvent(QDragLeaveEvent *i_o) { if (!m_iId) return; i_o->accept(); } void image_view::notify_pic(int id) { if (m_iId == id) { data_item *l_oData = m_oMediator->m_oItems.value(m_iId); m_oPixmap = l_oData->getPix(); repaint(); } } void image_view::notify_export_item(int id) { data_item *l_oData = m_oMediator->m_oItems.value(id); if (l_oData->m_iDataType != VIEW_IMG) return; if (l_oData->m_iPicId != NO_ITEM) { QDir l_oDir(m_oMediator->m_sTempDir); QFileInfoList l_oLst = l_oDir.entryInfoList(); foreach (QFileInfo l_oInfo, l_oLst) { QString l_sName = l_oInfo.fileName(); if (l_sName.startsWith(notr("img-%1").arg(QString::number(l_oData->m_iPicId)))) { QFile f(l_oInfo.absoluteFilePath()); QString newName = l_oInfo.fileName().replace(QRegExp("img-\\d+"), QString("diag-%1").arg(QString::number(id))); f.copy(newName); // TODO works for now break; } } } } semantik-0.9.5/src/image_view.h000664 000000 000000 00000002012 12732552614 016376 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef IMAGE_VIEW_H #define IMAGE_VIEW_H #include #include #include "c\ on.h" #include class QMenu; class image_view : public QWidget { Q_OBJECT public: image_view(QWidget*, sem_mediator*); sem_mediator *m_oMediator; QPixmap m_oPixmap; int m_iId; // yes, we could use a QLabel... void paintEvent(QPaintEvent*); QMenu *m_oMenu; QAction *m_oClearPictureAction; QAction *m_oChangePictureAction; bool event(QEvent*); void mouseReleaseEvent(QMouseEvent*); void do_change_pic(const KUrl&); void dragEnterEvent(QDragEnterEvent*); void dragMoveEvent(QDragMoveEvent*); void dropEvent(QDropEvent*); void dragLeaveEvent(QDragLeaveEvent*); signals: void sig_message(const QString&, int); public slots: void clear_pic(); void change_pic(); void notify_pic(int id); void context_menu(const QPoint&); void notify_select(const QList& unsel, const QList& sel); void notify_export_item(int id); }; #endif semantik-0.9.5/src/images/000775 000000 000000 00000000000 12732552614 015363 5ustar00rootroot000000 000000 semantik-0.9.5/src/images/README000664 000000 000000 00000000101 12732552614 016233 0ustar00rootroot000000 000000 Images from the kde project (lgpl license): crsc-app-colors.svg semantik-0.9.5/src/images/crsc-app-colors.svg000664 000000 000000 00000016236 12732552614 021123 0ustar00rootroot000000 000000 image/svg+xml image/svg+xml semantik-0.9.5/src/images/erase.png000664 000000 000000 00000000746 12732552614 017177 0ustar00rootroot000000 000000 PNG  IHDR v 9sBIT|d pHYsxtEXtSoftwarewww.inkscape.org<cIDAT(jAT8BR &ħ^ Ɣ$/"Nb4d`eaw `DKшIP(i.JqoGa?RD.6U)IENDB`semantik-0.9.5/src/images/more.png000664 000000 000000 00000000512 12732552614 017031 0ustar00rootroot000000 000000 PNG  IHDR Vu\sBIT|d pHYsMtEXtSoftwarewww.inkscape.org<IDAT(= @ S+ Xz f1Ԣ'ttbz^BaHVm !Y{ǤPP҄'ί#0u@z2Bl#5H8ƸH{$zǀAqށU}]QڡɱK)^: Yab9|IENDB`semantik-0.9.5/src/images/punto.png000664 000000 000000 00000000646 12732552614 017244 0ustar00rootroot000000 000000 PNG  IHDR szzmIDATXױJ\A"H ,RGi+w mlB ]A0b;1n1}f;s/LMk`KG[# C>|Af3hE!!&k Lm+fI c}+At ~F*zsE}Z1Y>{U* d67(6SRÒFܸ_.br,Jy_oKa*/ń~1}Ƥ Qnçtq7z?H~+DӬk8$=  IENDB`semantik-0.9.5/src/linear_container.cpp000664 000000 000000 00000002356 12732552614 020144 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include "sem_mediator.h" #include "linear_container.h" #include "linear_view.h" #include "con.h" linear_container::linear_container(QWidget *i_oParent, sem_mediator *i_oControl) : QWidget(i_oParent) { m_oMediator = i_oControl; QGridLayout *l_oLayout = new QGridLayout(); m_oView = new linear_view(this, i_oControl); KPushButton *l_oButton = new KPushButton(this); l_oButton->setIcon(KIcon(notr("edit-clear-locationbar"))); l_oButton->setIconSize(QSize(22, 22)); l_oButton->setFlat(true); l_oButton->setFocusPolicy(Qt::NoFocus); l_oButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); l_oButton->setMaximumSize(QSize(27, 27)); l_oButton->resize(25, 25); l_oButton->setAutoDefault(false); QLineEdit *l_oEdit = new QLineEdit(this); connect(l_oButton, SIGNAL(clicked(bool)), l_oEdit, SLOT(clear())); connect(l_oEdit, SIGNAL(textChanged(const QString&)), m_oView, SLOT(filter_slot(const QString&))); l_oLayout->addWidget(l_oButton, 0, 0); l_oLayout->addWidget(l_oEdit, 0, 1); l_oLayout->addWidget(m_oView, 1, 0, 1, 2); setLayout(l_oLayout); } semantik-0.9.5/src/linear_container.h000664 000000 000000 00000000552 12732552614 017605 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef LINEAR_CONTAINER_H #define LINEAR_CONTAINER_H #include #include "con.h" class QWidget; class sem_mediator; class linear_view; class linear_container : public QWidget { public: linear_container(QWidget *i_oParent, sem_mediator *i_oControl); sem_mediator *m_oMediator; linear_view *m_oView; }; #endif semantik-0.9.5/src/linear_view.cpp000664 000000 000000 00000021645 12732552614 017136 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include "data_item.h" #include "sem_mediator.h" #include "linear_view.h" #include "con.h" #include "mem_command.h" #include linear_view::linear_view(QWidget *i_oParent, sem_mediator *i_oControl) : QTreeWidget(i_oParent) { setDragEnabled(true); setAcceptDrops(true); setDropIndicatorShown(true); setDragDropMode(QAbstractItemView::InternalMove); header()->hide(); m_oMediator = i_oControl; connect(this, SIGNAL(itemSelectionChanged()), this, SLOT(selection_changed())); m_iLockSelect = 0; } void linear_view::notify_add_item(int id) { QTreeWidgetItem *l_oItem = new QTreeWidgetItem(this); l_oItem->setText(0, m_oMediator->m_oItems.value(id)->m_sSummary); l_oItem->setData(0, Qt::UserRole, id); //l_oItem->setFlags(Qt::ItemIsDragEnabled | Qt::ItemIsEnabled | Qt::ItemIsDropEnabled); addTopLevelItem(l_oItem); m_oItems[id] = l_oItem; notify_datatype(id); } void linear_view::notify_delete_item(int id) { m_iLockSelect++; QTreeWidgetItem *l_oItem = m_oItems.value(id); QTreeWidgetItem *l_oChild = NULL; while ( (l_oChild = l_oItem->takeChild(0)) != NULL) { addTopLevelItem(l_oChild); } if (l_oItem->parent()) l_oItem->parent()->takeChild(l_oItem->parent()->indexOfChild(l_oItem)); else takeTopLevelItem(indexOfTopLevelItem(l_oItem)); delete l_oItem; m_iLockSelect--; } void linear_view::notify_link_items(int id1, int id2) { m_iLockSelect++; QList l_oSel; foreach (QTreeWidgetItem* l_oIt, selectedItems()) { l_oSel.append(l_oIt->data(0, Qt::UserRole).toInt()); } QTreeWidgetItem *l_oItem1 = m_oItems.value(id2); QTreeWidgetItem *l_oItem2 = m_oItems.value(id1); QTreeWidgetItem *l_oRet = takeTopLevelItem(indexOfTopLevelItem(l_oItem1)); Q_ASSERT(l_oRet != NULL); int l_iOffset = 0; foreach (QPoint l_oP, m_oMediator->m_oLinks) { if (l_oP.x() == id1) // same parent { if (l_oP.y() == id2) // item found { break; } l_iOffset++; } } l_oItem2->insertChild(l_iOffset, l_oItem1); l_oItem2->setExpanded(true); data_item *l_o = m_oMediator->m_oItems.value(id2); l_oItem1->setBackgroundColor(0, l_o->get_color_scheme().m_oInnerColor); foreach (QTreeWidgetItem* l_oIt, selectedItems()) { l_oIt->setSelected(false); } foreach (int l_i, l_oSel) { QTreeWidgetItem *l_oItem = m_oItems.value(l_i); l_oItem->setSelected(true); } m_iLockSelect--; } void linear_view::notify_unlink_items(int id1, int id2) { m_iLockSelect++; QList l_oSel; foreach (QTreeWidgetItem* l_oIt, selectedItems()) { l_oSel.append(l_oIt->data(0, Qt::UserRole).toInt()); } QTreeWidgetItem *l_oItem1 = m_oItems.value(id1); QTreeWidgetItem *l_oItem2 = m_oItems.value(id2); if (l_oItem1->parent() == l_oItem2) { l_oItem2->takeChild(l_oItem2->indexOfChild(l_oItem1)); l_oItem2->setExpanded(true); addTopLevelItem(l_oItem1); data_item *l_o = m_oMediator->m_oItems.value(id1); l_oItem1->setBackgroundColor(0, l_o->get_color_scheme().m_oInnerColor); } else if (l_oItem2->parent() == l_oItem1) { l_oItem1->takeChild(l_oItem1->indexOfChild(l_oItem2)); l_oItem1->setExpanded(true); addTopLevelItem(l_oItem2); data_item *l_o = m_oMediator->m_oItems.value(id2); l_oItem2->setBackgroundColor(0, l_o->get_color_scheme().m_oInnerColor); } else { Q_ASSERT(1>1); } foreach (QTreeWidgetItem* l_oIt, selectedItems()) { l_oIt->setSelected(false); } foreach (int l_i, l_oSel) { QTreeWidgetItem *l_oItem = m_oItems.value(l_i); l_oItem->setSelected(true); } m_iLockSelect--; } void linear_view::selection_changed() { if (m_iLockSelect) return; QList l_oItems = selectedItems(); QList lst; foreach (QTreeWidgetItem* it, l_oItems) { lst.append(it->data(0, Qt::UserRole).toInt()); } mem_sel *sel = new mem_sel(m_oMediator); sel->sel = lst; sel->apply(); } void linear_view::filter_slot(const QString & i_oS) { foreach (QTreeWidgetItem *l_oItem, m_oItems.values()) { if (l_oItem->parent() != NULL) continue; filter_item(l_oItem, i_oS); } } bool linear_view::filter_item(QTreeWidgetItem * i_oItem, const QString & i_oS) { bool l_bDisp = (i_oItem->text(0).indexOf(i_oS, 0, Qt::CaseInsensitive) >= 0); int l_iCount = i_oItem->childCount(); for (int i=0; ichild(i); l_bDisp = filter_item(l_oChild, i_oS) || l_bDisp; } i_oItem->setHidden(!l_bDisp); return l_bDisp; } void linear_view::dropEvent(QDropEvent *i_oEv) { m_iLockSelect++; if (i_oEv->source() == this) { QTreeWidgetItem *l_oItem = itemAt(i_oEv->pos()); QTreeWidgetItem *l_oChild = selectedItems().at(0); Q_ASSERT(l_oChild != NULL); if (l_oChild) { int l_iId = l_oChild->data(0, Qt::UserRole).toInt(); if (dropIndicatorPosition() == QAbstractItemView::OnItem) { if (m_oMediator->parent_of(l_iId)) { mem_unlink *link = new mem_unlink(m_oMediator); link->child = l_iId; link->parent = m_oMediator->parent_of(l_iId); link->apply(); } if (l_oItem != NULL) { m_oMediator->link_items(l_oItem->data(0, Qt::UserRole).toInt(), l_iId); } } else if (l_oItem != NULL) { int j = l_oItem->data(0, Qt::UserRole).toInt(); int k = m_oMediator->parent_of(j); // make certain they have the same parent now // TODO do it in one step? if (m_oMediator->parent_of(l_iId) != k) { if (m_oMediator->parent_of(l_iId)) { mem_unlink *link = new mem_unlink(m_oMediator); link->child = l_iId; link->parent = m_oMediator->parent_of(l_iId); link->apply(); } m_oMediator->link_items(k, l_iId); } int z = 1; // offset for re-inserting the item if (dropIndicatorPosition() == QAbstractItemView::AboveItem) { z = 0; } int l = 0; // the index of the item drop for (int i=0; im_oLinks.size(); i++) { QPoint l_oP = m_oMediator->m_oLinks.at(i); if (l_oP.x() == k) // same parent { if (l_oP.y() == j) // item found { mem_sort *srt = new mem_sort(m_oMediator); srt->m_bOrderOnly = true; srt->init(k, l_iId, l+z); srt->apply(); break; } l++; } } } else { if (m_oMediator->parent_of(l_iId)) { mem_unlink *link = new mem_unlink(m_oMediator); link->child = l_iId; link->parent = m_oMediator->parent_of(l_iId); link->apply(); } } } } i_oEv->accept(); i_oEv->setDropAction(Qt::CopyAction); m_iLockSelect--; } void linear_view::notify_select(const QList& unsel, const QList& sel) { m_iLockSelect++; QList l_oLst = selectedItems(); foreach (QTreeWidgetItem* l_oItem, l_oLst) { int id = l_oItem->data(0, Qt::UserRole).toInt(); if (!sel.contains(id)) { l_oItem->setSelected(false); } } foreach (int id, sel) { QTreeWidgetItem *item = m_oItems.value(id); item->setSelected(true); item->setExpanded(true); } m_iLockSelect--; } void linear_view::notify_repaint(int id) { QTreeWidgetItem *l_oItem = m_oItems.value(id); data_item *l_o = m_oMediator->m_oItems.value(id); l_oItem->setBackgroundColor(0, l_o->get_color_scheme().m_oInnerColor); } void linear_view::notify_sort(int l_iId, bool) { m_iLockSelect++; QList l_oSel; foreach (QTreeWidgetItem* l_oIt, selectedItems()) { l_oSel.append(l_oIt->data(0, Qt::UserRole).toInt()); } QTreeWidgetItem *l_oItem = m_oItems.value(l_iId); int l_iCnt = 0; for (int i=0; im_oLinks.size(); i++) { QPoint l_oP = m_oMediator->m_oLinks.at(i); if (l_oP.x() == l_iId) { QTreeWidgetItem *l_oItem2 = m_oItems.value(l_oP.y()); int l_iIndex = l_oItem->indexOfChild(l_oItem2); if (l_iIndex != l_iCnt) { l_oItem->takeChild(l_iIndex); l_oItem->insertChild(l_iCnt, l_oItem2); } l_iCnt++; } } foreach (QTreeWidgetItem* l_oIt, selectedItems()) { l_oIt->setSelected(false); } foreach (int l_i, l_oSel) { QTreeWidgetItem *l_oItem = m_oItems.value(l_i); l_oItem->setSelected(true); } m_iLockSelect--; } void linear_view::notify_edit(int i_iId) { QTreeWidgetItem *l_oItem = m_oItems.value(i_iId); l_oItem->setText(0, m_oMediator->m_oItems.value(i_iId)->m_sSummary); } void linear_view::notify_datatype(int i_iId) { QTreeWidgetItem *l_oItem = m_oItems.value(i_iId); QIcon l_oIcon; switch (m_oMediator->m_oItems.value(i_iId)->m_iDataType) { case VIEW_TEXT: //l_oIcon = KIconLoader::global()->loadIconSet("text-plain", KIconLoader::Small); break; case VIEW_IMG: l_oIcon = KIconLoader::global()->loadIconSet("image-x-generic", KIconLoader::Small); break; case VIEW_DIAG: l_oIcon = KIconLoader::global()->loadIconSet("semantik-d", KIconLoader::Small); break; case VIEW_TABLE: l_oIcon = KIconLoader::global()->loadIconSet("x-office-spreadsheet", KIconLoader::Small); break; default: qDebug()<<"unknown datatype, this should not occur"; }; l_oItem->setIcon(0, l_oIcon); } #include "linear_view.moc" semantik-0.9.5/src/linear_view.h000664 000000 000000 00000001722 12732552614 016575 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef LINEAR_VIEW_H #define LINEAR_VIEW_H #include #include class QDragEnterEvent; class QDragMoveEvent; class QDropEvent; class QMouseEvent; class QMimeData; class linear_view : public QTreeWidget { Q_OBJECT public: linear_view(QWidget *i_oParent, sem_mediator *i_oControl); sem_mediator *m_oMediator; QMap m_oItems; bool filter_item(QTreeWidgetItem * i_oItem, const QString & i_oS); void dropEvent(QDropEvent *); int m_iLockSelect; public slots: void filter_slot(const QString & i_oS); void selection_changed(); void notify_add_item(int id); void notify_repaint(int id); void notify_delete_item(int id); void notify_link_items(int id1, int id2); void notify_unlink_items(int id1, int id2); void notify_select(const QList& unsel, const QList& sel); void notify_sort(int, bool); void notify_edit(int id); void notify_datatype(int); }; #endif semantik-0.9.5/src/main.cpp000664 000000 000000 00000003535 12732552614 015554 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include "con.h" #include "semantik.h" #include #include #include #include #include #include #include #include #include static const char description[] = I18N_NOOP("A mind-mapping tool for KDE\nAvailable exclusively for open systems such as OpenSuse, Gentoo or Fedora."); static const char version[] = VERSION; int grid_int(int x) { return GRID * (x / GRID); } int main(int i_iArgc, char **i_iArgv) { KCmdLineOptions options; options.add("+[url]", ki18n("A file to open on startup")); options.add("o ", ki18n("An output file for printing the map")); KAboutData l_o("semantik", 0, ki18n("Semantik"), version, ki18n(description), KAboutData::License_GPL_V3, ki18n("(C) 2007-2015 Thomas Nagy"), KLocalizedString()); l_o.setBugAddress("https://github.com/ita1024/semantik/issues"); l_o.addAuthor(ki18n("Thomas Nagy"), KLocalizedString()); KCmdLineArgs::init(i_iArgc, i_iArgv, &l_o); KCmdLineArgs::addCmdLineOptions(options); KApplication l_oApp; KGlobal::locale()->insertCatalog("libkdeedu"); semantik_win *l_oMainWin = new semantik_win; const KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); if (!args->getOption("o").isEmpty()) { if (args->count()) { if (args->url(0).isEmpty()) { qDebug()<<"a file requires a url"; return 1; } else { KUrl l_oUrl(args->getOption("o")); if (!l_oUrl.isValid()) return 2; l_oMainWin->slot_recent(args->url(0)); QPair p; return l_oMainWin->print_to_file(l_oUrl, p); } } } else { l_oMainWin->show(); if (args->count() && !args->url(0).isEmpty()) { l_oMainWin->slot_recent(args->url(0)); } } return l_oApp.exec(); } semantik-0.9.5/src/mem_command.cpp000664 000000 000000 00000017031 12732552614 017100 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include "data_item.h" #include "mem_command.h" #include "sem_mediator.h" /////////////////////////////////////////////////////////////////// mem_unlink::mem_unlink(sem_mediator* mod) : mem_command(mod) { pos = 0; } void mem_unlink::redo() { //qDebug()<<"redo mem_link"<m_oLinks.count(QPoint(parent, child)) == 1); pos = model->m_oLinks.indexOf(QPoint(parent, child)); model->m_oLinks.removeAll(QPoint(parent, child)); model->notify_unlink_items(parent, child); redo_dirty(); } void mem_unlink::undo() { //qDebug()<<"undo mem_link"<m_oLinks.contains(QPoint(parent, child))); model->m_oLinks.insert(pos, QPoint(parent, child)); model->notify_link_items(parent, child); undo_dirty(); } /////////////////////////////////////////////////////////////////// mem_move::mem_move(sem_mediator* mod) : mem_command(mod) { foreach (data_item* t, model->m_oItems.values()) { if (t->m_bSelected) { sel.append(t->m_iId); } } } void mem_move::redo() { //qDebug()<<"redo mem_move"<m_oItems.value(sel[i]); it->m_iXX = newPos[i].x(); it->m_iYY = newPos[i].y(); } model->notify_move(sel, newPos); redo_dirty(); } void mem_move::undo() { //qDebug()<<"undo mem_move"<m_oItems.value(sel[i]); it->m_iXX = oldPos[i].x(); it->m_iYY = oldPos[i].y(); } model->notify_move(sel, oldPos); undo_dirty(); } /////////////////////////////////////////////////////////////////// mem_color::mem_color(sem_mediator* mod) : mem_command(mod) { foreach (data_item* t, model->m_oItems.values()) { if (t->m_bSelected) { prevColors[t->m_iId] = t->m_iColor; } } } void mem_color::redo() { QMap::iterator i; for (i = prevColors.begin(); i != prevColors.end(); ++i) { data_item *t = model->m_oItems.value(i.key()); t->m_iColor = newColor; model->notify_repaint(i.key()); } redo_dirty(); } void mem_color::undo() { QMap::iterator i; for (i = prevColors.begin(); i != prevColors.end(); ++i) { data_item *t = model->m_oItems.value(i.key()); t->m_iColor = i.value(); model->notify_repaint(i.key()); } undo_dirty(); } /////////////////////////////////////////////////////////////////// mem_flag::mem_flag(sem_mediator* mod) : mem_command(mod) { add = true; foreach (data_item* t, model->m_oItems.values()) { if (t->m_bSelected) { prevFlags[t->m_iId] = t->m_oFlags; } } } void mem_flag::redo() { QMap >::iterator i; for (i = prevFlags.begin(); i != prevFlags.end(); ++i) { data_item *t = model->m_oItems.value(i.key()); t->m_oFlags = QList(i.value()); if (add) { if (!t->m_oFlags.contains(flag)) { t->m_oFlags.append(flag); } } else { t->m_oFlags.removeAll(flag); } model->notify_flag(i.key()); } redo_dirty(); } void mem_flag::undo() { QMap >::iterator i; for (i = prevFlags.begin(); i != prevFlags.end(); ++i) { data_item *t = model->m_oItems.value(i.key()); t->m_oFlags = i.value(); model->notify_flag(i.key()); } undo_dirty(); } /////////////////////////////////////////////////////////////////// mem_edit::mem_edit(sem_mediator* mod) : mem_command(mod) { foreach (data_item* t, model->m_oItems.values()) { if (t->m_bSelected) { sel = t; } } oldSummary = sel->m_sSummary; } void mem_edit::redo() { sel->m_sSummary = newSummary; model->notify_edit(sel->m_iId); redo_dirty(); } void mem_edit::undo() { sel->m_sSummary = oldSummary; model->notify_edit(sel->m_iId); undo_dirty(); } /////////////////////////////////////////////////////////////////// mem_datatype::mem_datatype(sem_mediator* mod) : mem_command(mod) { sel = NULL; foreach (data_item* t, model->m_oItems.values()) { if (t->m_bSelected) { sel = t; oldDataType = sel->m_iDataType; break; } } } void mem_datatype::redo() { sel->m_iDataType = newDataType; model->notify_datatype(sel->m_iId); redo_dirty(); } void mem_datatype::undo() { sel->m_iDataType = oldDataType; model->notify_datatype(sel->m_iId); undo_dirty(); } /////////////////////////////////////////////////////////////////// mem_text::mem_text(sem_mediator* mod) : mem_command(mod) { } void mem_text::redo() { sel->m_sText = newText; model->notify_text(sel->m_iId); redo_dirty(); } void mem_text::undo() { sel->m_sText = oldText; model->notify_text(sel->m_iId); undo_dirty(); } /////////////////////////////////////////////////////////////////// mem_vars::mem_vars(sem_mediator* mod) : mem_command(mod) { } void mem_vars::redo() { if (m_iId == NO_ITEM) { model->m_sHints = newVars; } else { data_item *item = model->m_oItems.value(m_iId); item->m_sHints = newVars; } model->notify_vars(m_iId); redo_dirty(); } void mem_vars::undo() { if (m_iId == NO_ITEM) { model->m_sHints = oldVars; } else { data_item *item = model->m_oItems.value(m_iId); item->m_sHints = oldVars; } model->notify_vars(m_iId); undo_dirty(); } /////////////////////////////////////////////////////////////////// mem_pic::mem_pic(sem_mediator* mod) : mem_command(mod) { } void mem_pic::redo() { sel->m_iPicId = m_iNewId; model->notify_pic(sel->m_iId); redo_dirty(); } void mem_pic::undo() { sel->m_iPicId = m_iOldId; model->notify_pic(sel->m_iId); undo_dirty(); } /////////////////////////////////////////////////////////////////// mem_table::mem_table(sem_mediator* mod) : mem_command(mod) { } void mem_table::redo() { data_item *item = model->m_oItems.value(m_iId); item->m_iNumRows = newNRows; item->m_iNumCols = newNCols; item->m_oTableData = newData; model->notify_table(m_iId); redo_dirty(); } void mem_table::undo() { data_item *item = model->m_oItems.value(m_iId); item->m_iNumRows = oldNRows; item->m_iNumCols = oldNCols; item->m_oTableData = oldData; model->notify_table(m_iId); undo_dirty(); } /////////////////////////////////////////////////////////////////// mem_sort::mem_sort(sem_mediator* mod) : mem_command(mod) { m_bOrderOnly = false; } void mem_sort::init(int i_iParent, int i_iChild, int i_iNum) { m_iParent = i_iParent; m_iChild = i_iChild; int i_iVal1 = -1; int i_iVal2 = -1; for (int i=0; i < model->m_oLinks.size(); i++) { QPoint l_oP = model->m_oLinks.at(i); if (l_oP.x() == i_iParent) { oldData.append(l_oP); newData.append(l_oP); } } // very old code here int l_iIdx = 0; for (int i=0; i=0 && i_iVal2>=0) { if (i_iVal1 > i_iVal2) { newData.swap(i_iVal1, i_iVal2); break; } else { int l_iPrev = i_iVal1; for (int i=i_iVal1+1; im_oLinks.size(); i++) { QPoint l_oP = model->m_oLinks.at(i); if (l_oP.x() == m_iParent) { model->m_oLinks.removeAt(i); i--; } } model->m_oLinks += newData; model->notify_sort(m_iParent, true & !m_bOrderOnly); redo_dirty(); } void mem_sort::undo() { for (int i=0; i < model->m_oLinks.size(); i++) { QPoint l_oP = model->m_oLinks.at(i); if (l_oP.x() == m_iParent) { model->m_oLinks.removeAt(i); i--; } } model->m_oLinks += oldData; model->notify_sort(m_iParent, true & !m_bOrderOnly); undo_dirty(); } semantik-0.9.5/src/mem_command.h000664 000000 000000 00000005014 12732552614 016543 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef MEM_COMMAND #define MEM_COMMAND #include "mem_base.h" #include #include #include #include #include "data_item.h" class mem_unlink : public mem_command { public: mem_unlink(sem_mediator*); void undo(); void redo(); int parent; int child; int pos; IType type() { return UNLINK; } }; class mem_move : public mem_command { public: mem_move(sem_mediator*); void undo(); void redo(); QList sel; QList oldPos; QList newPos; IType type() { return MOVE; } }; class mem_color : public mem_command { public: mem_color(sem_mediator*); void undo(); void redo(); QMap prevColors; int newColor; IType type() { return COLOR; } }; class mem_flag : public mem_command { public: mem_flag(sem_mediator*); void undo(); void redo(); bool add; QString flag; QMap > prevFlags; IType type() { return FLAG; } }; class mem_edit: public mem_command { public: mem_edit(sem_mediator*); void undo(); void redo(); data_item *sel; QString oldSummary; QString newSummary; IType type() { return EDIT; } }; class mem_datatype: public mem_command { public: mem_datatype(sem_mediator*); void undo(); void redo(); data_item *sel; int oldDataType; int newDataType; IType type() { return DATATYPE; } }; class mem_text: public mem_command { public: mem_text(sem_mediator*); void undo(); void redo(); data_item *sel; QString oldText; QString newText; IType type() { return TEXT; } }; class mem_vars: public mem_command { public: mem_vars(sem_mediator*); void undo(); void redo(); int m_iId; QString oldVars; QString newVars; IType type() { return VARS; } }; class mem_pic: public mem_command { public: mem_pic(sem_mediator*); void undo(); void redo(); data_item *sel; int m_iOldId; int m_iNewId; IType type() { return PIC; } }; class mem_table: public mem_command { public: mem_table(sem_mediator*); void undo(); void redo(); int m_iId; int oldNRows; int oldNCols; int newNRows; int newNCols; QHash, QString> oldData; QHash, QString> newData; IType type() { return TABLE; } }; class mem_sort: public mem_command { public: mem_sort(sem_mediator*); void init(int i_iParent, int i_iChild, int i_iNum); void undo(); void redo(); int m_iChild; int m_iParent; QList oldData; QList newData; bool m_bOrderOnly; IType type() { return SORT; } }; #endif semantik-0.9.5/src/po/000775 000000 000000 00000000000 12732552614 014534 5ustar00rootroot000000 000000 semantik-0.9.5/src/po/cs.po000664 000000 000000 00000063225 12732552614 015511 0ustar00rootroot000000 000000 # This file is put in the public domain. # # Pavel Fric , 2009, 2012. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://github.com/ita1024/semantik/issues\n" "POT-Creation-Date: 2015-02-08 16:12+0100\n" "PO-Revision-Date: 2012-10-21 19:45+0200\n" "Last-Translator: Pavel Fric \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.5\n" "Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n" "X-Language: cs_CZ\n" "X-Source-Language: C\n" #: base/data_item.cpp:60 canvas_view.cpp:246 canvas_view.cpp:298 #: canvas_view.cpp:310 msgid "Empty" msgstr "Prázdné" #: base/flag_scheme.cpp:14 msgid "Flag item(s) as..." msgstr "Označit položku(y) jako..." #: base/sem_mediator.cpp:282 msgid "Automatic save failed for file: %1" msgstr "Automatické uložení se nepodařilo u souboru: %1" #: base/sem_mediator.cpp:285 msgid "%1 saved automatically" msgstr "%1 uložen automaticky" #: base/sem_mediator.cpp:304 msgid "Color %1" msgstr "Barva %1" #: base/sem_mediator.cpp:617 msgid "File saving: missing file %1" msgstr "Ukládání souboru: chybí soubor %1" #: base/sem_mediator.cpp:642 base/sem_mediator.cpp:1147 #: base/sem_mediator.cpp:1190 msgid "Missing bindings for opening files" msgstr "Chybí spojení pro otevření souborů" #: base/sem_mediator.cpp:693 msgid "Missing filter file %1 for opening files" msgstr "Chybí soubor s filtrem %1 pro otevření souborů" #: base/sem_mediator.cpp:693 base/sem_mediator.cpp:708 msgid "Broken installation" msgstr "Poškozená instalace" #: base/sem_mediator.cpp:708 msgid "Missing python bindings for opening files" msgstr "Chybí spojení python pro otevření souborů" #: base/sem_mediator.cpp:724 msgid "Could not load the document %1" msgstr "Nepodařilo se nahrát dokument %1" #: base/sem_mediator.cpp:724 msgid "Broken document" msgstr "Poškozený dokument" #: base/sem_mediator.cpp:1113 msgid "Code generation failed: missing file %1" msgstr "Vytvoření kódu se nepodařilo: chybí soubor %1" #: base/sem_mediator.cpp:1152 msgid "Document generation completed successfully" msgstr "Vytvoření dokumentu úspěšně dokončeno" #: browser.cpp:21 canvas_view.cpp:143 msgid "Toggle fullscreen" msgstr "Zapnout/Vypnout zobrazení na celou obrazovku" #: canvas_view.cpp:92 msgid "Add an element" msgstr "Přidat prvek" #: canvas_view.cpp:97 fig/box_view.cpp:192 msgid "Delete selection" msgstr "Smazat výběr" #: canvas_view.cpp:102 msgid "Insert a sibling" msgstr "Vložit sourozence" #: canvas_view.cpp:107 msgid "Move up" msgstr "Posunout nahoru" #: canvas_view.cpp:108 msgid "Move down" msgstr "Posunout dolů" #: canvas_view.cpp:109 msgid "Move left" msgstr "Posunout doleva" #: canvas_view.cpp:110 msgid "Move right" msgstr "Posunout doprava" #: canvas_view.cpp:112 msgid "Select up" msgstr "Vybrat nahoru" #: canvas_view.cpp:113 msgid "Select down" msgstr "Vybrat dolů" #: canvas_view.cpp:114 msgid "Select left" msgstr "Vybrat doleva" #: canvas_view.cpp:115 msgid "Select right" msgstr "Vybrat doprava" #: canvas_view.cpp:118 msgid "Select subtree" msgstr "Vybrat podstrom" #: canvas_view.cpp:123 msgid "Next root" msgstr "Další kořen" #: canvas_view.cpp:126 msgid "Toggle edit" msgstr "Přepnout úpravy" #: canvas_view.cpp:131 msgid "Cancel edit" msgstr "Zrušit úpravy" #: canvas_view.cpp:147 msgid "Colors" msgstr "Barvy" #: canvas_view.cpp:158 msgid "Text" msgstr "Text" #: canvas_view.cpp:159 msgid "Diagram" msgstr "Nákres" #: canvas_view.cpp:160 msgid "Table" msgstr "Tabulka" #: canvas_view.cpp:161 msgid "Image" msgstr "Obrázek" #: canvas_view.cpp:630 msgid "Color" msgstr "Barva" #: canvas_view.cpp:680 msgid "Flag" msgstr "Příznak" #: canvas_view.cpp:1003 msgid "Click to set Item %1" msgstr "Klepněte pro umístění položky %1" #: canvas_view.cpp:1346 msgid "*.png|PNG Files (*.png)" msgstr "*.png|Soubory PNG (*.png)" #: canvas_view.cpp:1384 msgid "No destination file selected" msgstr "Nevybrán žádný cílový soubor" #: canvas_view.cpp:1419 msgid "Exported '%1'" msgstr "Vyvedeno '%1'" #: canvas_view.cpp:1421 msgid "Could not save to %1" msgstr "Nepodařilo se uložit do %1" #: canvas_view.cpp:1421 msgid "Missing picture" msgstr "Chybí obrázek" #: canvas_view.cpp:1713 #, fuzzy msgid "Semantik map" msgstr "Semantik" #: canvas_view.cpp:1763 fig/box_view.cpp:1922 msgid "Printing cancelled" msgstr "" #: canvas_view.cpp:1774 fig/box_view.cpp:1933 msgid "Printing completed" msgstr "" #: canvas_view.cpp:1778 fig/box_view.cpp:1937 msgid "Problem during printing :-(" msgstr "" #: config_dialog.cpp:29 msgid "Document settings" msgstr "Nastavení dokumentu" #: config_dialog.cpp:37 msgid "Reorganization type" msgstr "Druh nového uspořádání" #: config_dialog.cpp:41 msgid "Connection type" msgstr "Druh spojení" #: config_dialog.cpp:45 msgid "Save document automatically" msgstr "Dokument uložit automaticky" #: config_dialog.cpp:49 msgid "Background color" msgstr "Barva pozadí" #: config_dialog.cpp:54 msgid "Fixed" msgstr "Pevné" #: config_dialog.cpp:54 msgid "Force-based" msgstr "Usazené silou" #: config_dialog.cpp:54 msgid "Incremental" msgstr "Přírustkové" #: config_dialog.cpp:58 msgid "Lines" msgstr "Čáry" #: config_dialog.cpp:58 msgid "Splines" msgstr "Křivky" #: config_dialog.cpp:62 msgid " min" msgstr " min" #: config_dialog.cpp:65 msgid "" "Interval in minutes for saving the document automatically, 0 for disabling " "this feature" msgstr "" "Doba v minutách pro automatické ukládání dokumentu, 0 pro zakázání této " "funkce" #: data_view.cpp:17 msgid "

    No item selected

    " msgstr "

    Nebyla vybrána žádná položka

    " #: doc_dialog.cpp:30 msgid "First Name" msgstr "Křestní jméno" #: doc_dialog.cpp:34 generator_dialog.cpp:56 msgid "Name" msgstr "Příjmení" #: doc_dialog.cpp:38 msgid "Organization" msgstr "Organizace" #: doc_dialog.cpp:42 msgid "Email" msgstr "E-mail" #: export_map_dialog.cpp:31 msgid "Export the map" msgstr "Vyvést mapu" #: export_map_dialog.cpp:37 msgid "File to write" msgstr "Soubor k zapsání" #: export_map_dialog.cpp:43 msgid "Width" msgstr "Šířka" #: export_map_dialog.cpp:51 msgid "Height" msgstr "Výška" #: fig/box_class_properties.cpp:89 vars_view.cpp:77 msgid "Code complete" msgstr "Kód dokončen" #: fig/box_class_properties.cpp:90 vars_view.cpp:78 msgid "Ctrl+space" msgstr "Ctrl+mezerník" #: fig/box_class_properties.cpp:246 #, fuzzy msgid "Class properties" msgstr "Vlastnosti odkazu" #: fig/box_class_properties.cpp:283 msgid "No class name given" msgstr "" #: fig/box_class_properties.cpp:283 #, fuzzy msgid "Missing class name" msgstr "Chybí data" #: fig/box_document_properties.cpp:27 #, fuzzy msgid "Diagram properties" msgstr "Vlastnosti odkazu" #: fig/box_document_properties.cpp:37 msgid "Font" msgstr "" #: fig/box_document_properties.cpp:39 #, fuzzy msgid "Font for diagram objects" msgstr "Vlastnosti pro okno s diagramem" #: fig/box_fork.cpp:334 fig/box_item.cpp:136 msgid "%1 x %2" msgstr "%1 x %2" #: fig/box_item.cpp:192 #, fuzzy msgid "Diagram box properties" msgstr "Vlastnosti odkazu" #: fig/box_item.cpp:193 msgid "Text:" msgstr "Text:" #: fig/box_link_properties.cpp:23 msgid "Link properties" msgstr "Vlastnosti odkazu" #: fig/box_link_properties.cpp:33 msgid "Thickness" msgstr "Tloušťka" #: fig/box_link_properties.cpp:37 #, fuzzy msgid "Line Type" msgstr "Styl čáry" #: fig/box_link_properties.cpp:41 msgid "Line Style" msgstr "Styl čáry" #: fig/box_link_properties.cpp:45 #, fuzzy msgid "Origin arrow" msgstr "Šipka doprava" #: fig/box_link_properties.cpp:49 #, fuzzy msgid "Target arrow" msgstr "Šipka doleva" #: fig/box_link_properties.cpp:59 msgid "Zigzag" msgstr "" #: fig/box_link_properties.cpp:60 #, fuzzy msgid "Straight" msgstr "Vybrat doprava" #: fig/box_link_properties.cpp:64 msgid "Invisible line" msgstr "Neviditelná čára" #: fig/box_link_properties.cpp:65 msgid "Solid Line" msgstr "Plná čára" #: fig/box_link_properties.cpp:66 msgid "Dash Line" msgstr "Čárkovaná čára" #: fig/box_link_properties.cpp:67 msgid "Dot Line" msgstr "Tečkovaná čára" #: fig/box_link_properties.cpp:71 fig/box_link_properties.cpp:79 msgid "No arrow" msgstr "Žádná šipka" #: fig/box_link_properties.cpp:72 fig/box_link_properties.cpp:80 msgid "Triangle" msgstr "Trojúhelník" #: fig/box_link_properties.cpp:73 fig/box_link_properties.cpp:81 #, fuzzy msgid "Link" msgstr "&Spojit" #: fig/box_link_properties.cpp:74 fig/box_link_properties.cpp:82 msgid "Inheritance" msgstr "" #: fig/box_link_properties.cpp:75 fig/box_link_properties.cpp:83 #, fuzzy msgid "Aggregation" msgstr "Organizace" #: fig/box_matrix.cpp:181 msgid "Last row: %2px, last column: %3px (size: %4 x %5)" msgstr "" #: fig/box_matrix.cpp:197 msgid "Row %1: %2px (size: %3 x %4)" msgstr "" #: fig/box_matrix.cpp:213 msgid "Column %1: %2px (size: %3 x %4)" msgstr "" #: fig/box_view.cpp:102 msgid "box_item" msgstr "Položka okna" #: fig/box_view.cpp:104 msgid "id" msgstr "ID" #: fig/box_view.cpp:109 fig/box_view.cpp:119 msgid "c1" msgstr "c1" #: fig/box_view.cpp:110 fig/box_view.cpp:121 msgid "c2" msgstr "c2" #: fig/box_view.cpp:111 msgid "text" msgstr "text" #: fig/box_view.cpp:112 msgid "col" msgstr "sloup" #: fig/box_view.cpp:115 fig/box_view.cpp:151 msgid "box_link" msgstr "odkaz" #: fig/box_view.cpp:118 msgid "p1" msgstr "p1" #: fig/box_view.cpp:120 msgid "p2" msgstr "p2" #: fig/box_view.cpp:133 msgid "pen_style" msgstr "" #: fig/box_view.cpp:134 msgid "border_width" msgstr "" #: fig/box_view.cpp:138 msgid "box_link_offset" msgstr "posun_odkazu" #: fig/box_view.cpp:142 msgid "x" msgstr "x" #: fig/box_view.cpp:142 msgid "y" msgstr "y" #: fig/box_view.cpp:182 msgid "Properties..." msgstr "Vlastnosti..." #: fig/box_view.cpp:187 msgid "Activity" msgstr "Činnost" #: fig/box_view.cpp:188 msgid "Ctrl+Return" msgstr "Ctrl+Return" #: fig/box_view.cpp:193 msgid "Delete" msgstr "Smazat" #: fig/box_view.cpp:197 msgid "Color..." msgstr "Barva..." #: fig/box_view.cpp:202 msgid "Raise" msgstr "" #: fig/box_view.cpp:203 msgid "PgUp" msgstr "O stranu nahoru (PgUp)" #: fig/box_view.cpp:207 msgid "Send back" msgstr "" #: fig/box_view.cpp:208 msgid "PgDown" msgstr "O stranu dolů (PgDown)" #: fig/box_view.cpp:212 msgid "Floating text" msgstr "Plovoucí text" #: fig/box_view.cpp:214 msgid "Component" msgstr "Součástka" #: fig/box_view.cpp:216 msgid "Node" msgstr "Uzel" #: fig/box_view.cpp:218 #, fuzzy msgid "Decision" msgstr "Změnit rozměry" #: fig/box_view.cpp:220 #, fuzzy msgid "Database" msgstr "Data" #: fig/box_view.cpp:222 msgid "Activity start" msgstr "Začátek činnosti" #: fig/box_view.cpp:224 msgid "Activity end" msgstr "Konec činnosti" #: fig/box_view.cpp:226 msgid "Horizontal fork/join" msgstr "Vodorovná odnož/spojnice" #: fig/box_view.cpp:228 msgid "Vertical fork/join" msgstr "Svislá odnož/spojnice" #: fig/box_view.cpp:230 msgid "Actor" msgstr "Herec" #: fig/box_view.cpp:232 msgid "Usecase" msgstr "Případ užití" #: fig/box_view.cpp:234 msgid "Matrix" msgstr "" #: fig/box_view.cpp:236 msgid "Boundary" msgstr "" #: fig/box_view.cpp:238 msgid "Class" msgstr "" #: fig/box_view.cpp:241 msgid "Import from file..." msgstr "" #: fig/box_view.cpp:243 #, fuzzy msgid "Export to file..." msgstr "&Vyvést mapu..." #: fig/box_view.cpp:245 msgid "Copy image to clipboard" msgstr "" #: fig/box_view.cpp:267 #, fuzzy msgid "File operations" msgstr "Vlastnosti odkazu" #: fig/box_view.cpp:279 msgid "More elements" msgstr "Další prvky" #: fig/box_view.cpp:317 msgid "Alignment" msgstr "Zarovnání" #: fig/box_view.cpp:319 msgid "Align left" msgstr "Zarovnat vlevo" #: fig/box_view.cpp:320 msgid "Align center" msgstr "Zarovnat na střed" #: fig/box_view.cpp:321 msgid "Align right" msgstr "Vybrat vpravo" #: fig/box_view.cpp:323 msgid "Align top" msgstr "Zarovnat nahoru" #: fig/box_view.cpp:324 msgid "Align middle" msgstr "Zarovnat doprostřed" #: fig/box_view.cpp:325 msgid "Align bottom" msgstr "Zarovnat dolů" #: fig/box_view.cpp:328 msgid "Size" msgstr "Velikost" #: fig/box_view.cpp:330 msgid "Same width" msgstr "Stejná šířka" #: fig/box_view.cpp:331 msgid "Same height" msgstr "Stejná výška" #: fig/box_view.cpp:332 msgid "Same width and height" msgstr "Stejná šířka a výška" #: fig/box_view.cpp:589 fig/box_view.cpp:1871 #, fuzzy msgid "Semantik diagram" msgstr "Semantik %1" #: fig/box_view.cpp:1684 fig/box_view.cpp:1720 fig/semantik_d_win.cpp:280 #, fuzzy msgid "*.semd|Semantik diagram (*.semd)" msgstr "*.sem|Soubor pro Semantik (*.sem)" #: fig/box_view.cpp:1685 fig/semantik_d_win.cpp:281 #, fuzzy msgid "Choose a file to open" msgstr "Vybrat název souboru" #: fig/box_view.cpp:1721 semantik.cpp:419 semantik.cpp:481 msgid "Choose a file name" msgstr "Vybrat název souboru" #: fig/box_view.cpp:1735 semantik.cpp:432 msgid "" "The file \"%1\" already exists.\n" "Overwrite it?" msgstr "" "Soubor \"%1\" již existuje.\n" "Přepsat jej?" #: fig/box_view.cpp:1736 semantik.cpp:433 msgid "Overwrite existing file" msgstr "Přepsat stávající soubor" #: fig/box_view.cpp:1758 fig/box_view.cpp:1776 semantik.cpp:444 #: semantik.cpp:466 msgid "Saved '%1'" msgstr "Uloženo '%1'" #: fig/matrix_dialog.cpp:32 table_dialog.cpp:32 msgid "Rows" msgstr "Řádky" #: fig/matrix_dialog.cpp:36 table_dialog.cpp:36 msgid "Columns" msgstr "Sloupce" #: fig/semantik_d_win.cpp:64 semantik.cpp:202 msgid "Ctrl+H" msgstr "Ctrl+H" #: fig/semantik_d_win.cpp:68 #, fuzzy msgid "Files" msgstr "&Soubor" #: fig/semantik_d_win.cpp:80 #, fuzzy msgid "This is Semantik-d" msgstr "Semantik" #: fig/semantik_d_win.cpp:185 #, fuzzy msgid "[Untitled]" msgstr "Nepojmenovaný" #: fig/semantik_d_win.cpp:246 semantik.cpp:548 msgid "Untitled" msgstr "Nepojmenovaný" #: fig/semantik_d_win.cpp:249 semantik.cpp:551 msgid "" "The document \"%1\" has been modified.\n" "Do you want to save your changes or discard them?" msgstr "" "Dokument \"%1\" byl změněn.\n" "Chcete svoje změny uložit nebo je vyhodit?" #: fig/semantik_d_win.cpp:250 semantik.cpp:552 msgid "Close Document" msgstr "Zavřít dokument" #: fig/semantik_d_win.cpp:385 semantik.cpp:492 msgid " [Modified] " msgstr " [Změněno] " #: fig/semantik_d_win.cpp:390 #, fuzzy msgid "Semantik Diagram %1" msgstr "Semantik %1" #: fig/semantik_d_win.cpp:394 #, fuzzy msgid "%1 %2 - Semantik Diagram" msgstr "%1 %2 - Semantik" #: fig/semd.cpp:26 msgid "A tool for editing and organizing Semantik diagrams" msgstr "" #: fig/semd.cpp:42 main.cpp:34 msgid "A file to open on startup" msgstr "Soubor k otevření při spuštění" #: fig/semd.cpp:43 msgid "An output file for exporting the diagram" msgstr "" #: fig/semd.cpp:44 msgid "Diagram width for printing" msgstr "" #: fig/semd.cpp:45 msgid "Diagram height for printing" msgstr "" #: fig/semd.cpp:47 #, fuzzy msgid "Semantik-d" msgstr "Semantik" #: fig/semd.cpp:47 #, fuzzy msgid "(C) 2013-2015 Thomas Nagy" msgstr "(C) 2007-2015 Thomas Nagy" #: fig/semd.cpp:49 main.cpp:40 msgid "Thomas Nagy" msgstr "Thomas Nagy" #: generator_dialog.cpp:30 msgid "Generate documents" msgstr "Vytvořit dokumenty" #: generator_dialog.cpp:36 msgid "Generators" msgstr "Tvůrci" #: generator_dialog.cpp:39 msgid "Description" msgstr "Popis" #: generator_dialog.cpp:63 msgid "Location" msgstr "Umístění" #: generator_dialog.cpp:114 msgid "No document generator chosen." msgstr "Nebyl vybrán žádný tvůrce dokumentu." #: generator_dialog.cpp:114 msgid "Missing data" msgstr "Chybí data" #: generator_dialog.cpp:120 msgid "Invalid output directory %1" msgstr "Neplatný výstupní adresář %1" #: generator_dialog.cpp:120 msgid "Missing location" msgstr "Chybí umístění" #: image_view.cpp:37 msgid "Change picture" msgstr "Změnit obrázek" #: image_view.cpp:41 msgid "Clear picture" msgstr "Smazat obrázek" #: image_view.cpp:66 msgid "Click to set a picture" msgstr "Klepněte pro položení obrázku" #: image_view.cpp:70 msgid "Select an item on the map" msgstr "Vybrat položku na zobrazení" #: image_view.cpp:166 msgid "*.png *.jpg *.jpeg *.gif|Image Files (*.png *.jpg *.jpeg *.gif)" msgstr "*.png *.jpg *.jpeg *.gif|Obrázkové soubory (*.png *.jpg *.jpeg *.gif)" #: image_view.cpp:167 msgid "Choose a picture" msgstr "Vybrat obrázek" #: image_view.cpp:179 msgid "Could not load the picture" msgstr "Nepodařilo se nahrát obrázek" #: main.cpp:24 msgid "" "A mind-mapping tool for KDE\n" "Available exclusively for open systems such as OpenSuse, Gentoo or Fedora." msgstr "" "Nástroj na vytváření myšlenkových map pro KDE\n" "Dostupný exkluzivně pro systémy jako OpenSuse, Gentoo nebo Fedora." #: main.cpp:35 msgid "An output file for printing the map" msgstr "" #: main.cpp:37 msgid "Semantik" msgstr "Semantik" #: main.cpp:38 msgid "(C) 2007-2015 Thomas Nagy" msgstr "(C) 2007-2015 Thomas Nagy" #. i18n: file: data/semantik-dui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantikui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantik-dui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantikui.rc:5 #. i18n: ectx: Menu (file) #: po/rc.cpp:3 po/rc.cpp:21 rc.cpp:3 rc.cpp:21 msgid "&File" msgstr "&Soubor" #. i18n: file: data/semantik-dui.rc:25 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantikui.rc:8 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantik-dui.rc:25 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantikui.rc:8 #. i18n: ectx: Menu (edit) #: po/rc.cpp:6 po/rc.cpp:24 rc.cpp:6 rc.cpp:24 msgid "&Edit" msgstr "Úp&ravy" #. i18n: file: data/semantik-dui.rc:28 #. i18n: ectx: Menu (view) #. i18n: file: data/semantikui.rc:13 #. i18n: ectx: Menu (view) #. i18n: file: data/semantik-dui.rc:28 #. i18n: ectx: Menu (view) #. i18n: file: data/semantikui.rc:13 #. i18n: ectx: Menu (view) #: po/rc.cpp:9 po/rc.cpp:27 rc.cpp:9 rc.cpp:27 msgid "&View" msgstr "&Pohled" #. i18n: file: data/semantik-dui.rc:33 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantikui.rc:21 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantik-dui.rc:33 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantikui.rc:21 #. i18n: ectx: Menu (tools) #: po/rc.cpp:12 po/rc.cpp:30 rc.cpp:12 rc.cpp:30 msgid "&Tools" msgstr "Nás&troje" #. i18n: file: data/semantik-dui.rc:36 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantikui.rc:24 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantik-dui.rc:36 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantikui.rc:24 #. i18n: ectx: Menu (settings) #: po/rc.cpp:15 po/rc.cpp:33 rc.cpp:15 rc.cpp:33 msgid "&Settings" msgstr "&Nastavení" #. i18n: file: data/semantik-dui.rc:39 #. i18n: ectx: Menu (help) #. i18n: file: data/semantikui.rc:27 #. i18n: ectx: Menu (help) #. i18n: file: data/semantik-dui.rc:39 #. i18n: ectx: Menu (help) #. i18n: file: data/semantikui.rc:27 #. i18n: ectx: Menu (help) #: po/rc.cpp:18 po/rc.cpp:36 rc.cpp:18 rc.cpp:36 msgid "&Help" msgstr "Nápo&věda" #. i18n: file: data/semantikui.rc:41 #. i18n: ectx: ToolBar (colorsToolBar) #: po/rc.cpp:39 rc.cpp:39 msgid "Colors Toolbar" msgstr "Nástrojový pruh barev" #. i18n: file: data/semantikui.rc:45 #. i18n: ectx: ToolBar (flagsToolBar) #: po/rc.cpp:42 rc.cpp:42 msgid "Flags Toolbar" msgstr "Nástrojový pruh příznaků" #: po/rc.cpp:43 rc.cpp:43 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Pavel Fric" #: po/rc.cpp:44 rc.cpp:44 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "fripohled.blogspot.com" #: pre_view.cpp:23 msgid "

    No preview available
    at this time

    " msgstr "

    V této chvíli
    není dostupný žádný náhled

    " #: semantik.cpp:46 msgid "" "The map is empty, Semantik\n" "cannot create documents from it" msgstr "" "Zobrazení je prázdné, Semantik\n" "z něj nedokáže vytvářet dokumenty" #: semantik.cpp:46 msgid "Empty map" msgstr "Prázdné zobrazení" #: semantik.cpp:53 msgid "Template folder %1 is not readable" msgstr "Složka s předlohami %1 je nečitelná" #: semantik.cpp:167 msgid "&Reorganize the map" msgstr "&Přeuspořádat zobrazení" #: semantik.cpp:169 msgid "Ctrl+R" msgstr "Ctrl+R" #: semantik.cpp:172 msgid "&Export the map..." msgstr "&Vyvést mapu..." #: semantik.cpp:174 msgid "Ctrl+Shift+E" msgstr "Ctrl+Shift+E" #: semantik.cpp:179 msgid "&Generate..." msgstr "&Vytvořit..." #: semantik.cpp:182 msgid "Ctrl+G" msgstr "Ctrl+G" #: semantik.cpp:188 msgid "CustomColor" msgstr "Vlastní barva" #: semantik.cpp:211 msgid "Data" msgstr "Data" #: semantik.cpp:235 msgid "Variables" msgstr "Proměnné" #: semantik.cpp:244 msgid "Preview" msgstr "Náhled" #: semantik.cpp:256 msgid "Linear view" msgstr "Přímočarý pohled" #: semantik.cpp:350 msgid "Welcome to Semantik" msgstr "Vítejte v Semantiku" #: semantik.cpp:418 msgid "*.sem|Semantik file (*.sem)" msgstr "*.sem|Soubor pro Semantik (*.sem)" #: semantik.cpp:480 msgid "*.sem *.kdi *.mm *.vym|All Supported Files (*.sem *.kdi *.mm *.vym)" msgstr "" "*.sem *.kdi *.mm *.vym|Všechny podporované soubory (*.sem *.kdi *.mm *.vym)" #: semantik.cpp:497 msgid "Semantik %1" msgstr "Semantik %1" #: semantik.cpp:501 msgid "%1 %2 - Semantik" msgstr "%1 %2 - Semantik" #: table_view.cpp:26 table_view.cpp:80 msgid "Add Row" msgstr "Přidat řádek" #: table_view.cpp:27 msgid "Add a row" msgstr "Přidat řádek" #: table_view.cpp:31 table_view.cpp:81 msgid "Add Column" msgstr "Přidat sloupec" #: table_view.cpp:32 msgid "Add a column" msgstr "Přidat sloupec" #: table_view.cpp:37 table_view.cpp:82 msgid "Remove Row" msgstr "Odstranit řádek" #: table_view.cpp:38 msgid "Remove a row" msgstr "Odstranit řádek" #: table_view.cpp:42 table_view.cpp:83 msgid "Remove Column" msgstr "Odstranit sloupec" #: table_view.cpp:43 msgid "Remove a column" msgstr "Odstranit sloupec" #: table_view.cpp:47 msgid "Redimension" msgstr "Změnit rozměry" #: table_view.cpp:48 msgid "Change table dimensions" msgstr "Změnit rozměry tabulky" #: text_view.cpp:41 msgid "&Bold" msgstr "&Tučné" #: text_view.cpp:42 msgid "Ctrl+B" msgstr "Ctrl+B" #: text_view.cpp:45 msgid "&Italic" msgstr "&Kurzíva" #: text_view.cpp:46 msgid "Ctrl+I" msgstr "Ctrl+I" #: text_view.cpp:49 msgid "&Underline" msgstr "&Podtržení" #: text_view.cpp:50 msgid "Ctrl+U" msgstr "CTRL+U" #~ msgid "Data type" #~ msgstr "Datový typ" #~ msgid "sl" #~ msgstr "sl" #~ msgid "wl" #~ msgstr "wl" #~ msgid "Ready" #~ msgstr "Připraven" #~ msgid "Insert child" #~ msgstr "Vložit potomka" #~ msgid "dirty" #~ msgstr "špinavý" #~ msgid "Add Box" #~ msgstr "Přidat kolonku" #~ msgid "Connection width" #~ msgstr "Šířka spojení" #~ msgid "1px" #~ msgstr "1px" #~ msgid "2px" #~ msgstr "2px" #~ msgid "3px" #~ msgstr "3px" #~ msgid "Connection style" #~ msgstr "Styl spojení" #~ msgid "dot line" #~ msgstr "Tečkovaná čára" #~ msgid "exclude the table" #~ msgstr "Vyjmout tabulku" #~ msgid "fit the item on one slide" #~ msgstr "Umístit položku na snímek" #~ msgid "picture caption" #~ msgstr "Popisek obrázku" #~ msgid "picture dimension in pdf files" #~ msgstr "Rozměry obrázku v souborech PDF" #~ msgid "html div style: style=\"width: 99px;\"" #~ msgstr "html div style: style=\"width: 99px;\"" #~ msgid "html picture style: style=\"width: 99px;\"" #~ msgstr "Styl obrázku v html: style=\"width: 99px;\"" #~ msgid "do not use this item for generating slides" #~ msgstr "Tuto položku nepoužívejte pro vytváření snímků" #~ msgid "command to launch (%s is the resulting file)" #~ msgstr "Příkaz ke spuštění (%s je výsledným souborem)" #~ msgid "cd `echo %s | sed s/main.tex//` && ./waf configure && waf --view" #~ msgstr "cd `echo %s | sed s/main.tex//` && ./waf configure && waf --view" #~ msgid "firefox %s" #~ msgstr "firefox %s" #~ msgid "ooimpress %s" #~ msgstr "ooimpress %s" #~ msgid "oowriter %s" #~ msgstr "oowriter %s" #~ msgid "document author" #~ msgstr "Autor dokumentu" #~ msgid "turn off the document author (latex)" #~ msgstr "Vypnout autora dokumentu (latex)" #~ msgid "document class (latex: a4, report, book)" #~ msgstr "Třída dokumentu (latex: a4, zpráva, kniha)" #~ msgid "company" #~ msgstr "Společnost" #~ msgid "document date" #~ msgstr "Datum vytvoření dokumentu" #~ msgid "turn of the document date (latex)" #~ msgstr "Vypnout datum vytvoření dokumentu (latex)" #~ msgid "location of the presentation" #~ msgstr "Umístění představení" #~ msgid "turn off the document title (latex)" #~ msgstr "Vypnout název dokumentu (latex)" #~ msgid "footer center (pdflatex)" #~ msgstr "Zápatí na střed (pdflatex)" #~ msgid "footer left (pdflatex)" #~ msgstr "Zápatí vlevo (pdflatex)" #~ msgid "turn off the fancy output" #~ msgstr "Vypnout vypracovaný výstup" #~ msgid "footer right" #~ msgstr "Zápatí vpravo" #~ msgid "header center (pdflatex)" #~ msgstr "Záhlaví na střed (pdflatex)" #~ msgid "header left" #~ msgstr "Záhlaví vlevo" #~ msgid "header right" #~ msgstr "Záhlaví vpravo" #~ msgid "openoffice.org language (fr_FR)" #~ msgstr "Jazyk v openoffice.org (fr_FR)" #~ msgid "openoffice.org presentation language" #~ msgstr "Jazyk představení v openoffice.org" #~ msgid "openoffice.org text language" #~ msgstr "Jazyk textu v openoffice.org" #~ msgid "Warsaw (JuanLesPins, Montpellier, )" #~ msgstr "Varšava (JuanLesPins, Montpellier, )" #~ msgid "Generator dialog" #~ msgstr "Dialog tvůrce" #~ msgid "&Ok" #~ msgstr "&OK" #~ msgid "File %1 does not exist" #~ msgstr "Soubor %1 neexistuje" #~ msgid "File %1 could not be opened" #~ msgstr "Soubor %1 se nepodařilo otevřít" #~ msgid "something bad happened" #~ msgstr "Stalo se něco nepříjemného" #~ msgid "something worse happened" #~ msgstr "Stalo se něco ještě horšího" #~ msgid "&Select" #~ msgstr "&Vybrat" #~ msgid "&Sort" #~ msgstr "&Třídit" #~ msgid "exclude the picture" #~ msgstr "Vyjmout obrázek" #~ msgid "latex language: english (frenchb, )" #~ msgstr "Jazyk latexu: english (frenchb, )" semantik-0.9.5/src/po/de.po000664 000000 000000 00000066163 12732552614 015500 0ustar00rootroot000000 000000 # This file is put in the public domain. # # FIRST AUTHOR St. Briest , 2015. #, fuzzy msgid "" msgstr "" "Project-Id-Version: semantik\n" "Report-Msgid-Bugs-To: https://github.com/ita1024/semantik/issues\n" "POT-Creation-Date: 2015-02-08 16:12+0100\n" "PO-Revision-Date: 2015-11-28 15:00+0100\n" "Last-Translator: St. Briest\n" "Language-Team:\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Language: de_DE\n" "X-Source-Language: C\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: base/data_item.cpp:60 canvas_view.cpp:246 canvas_view.cpp:298 #: canvas_view.cpp:310 msgid "Empty" msgstr "Leer" #: base/flag_scheme.cpp:14 msgid "Flag item(s) as..." msgstr "Kennzeichne als..." #: base/sem_mediator.cpp:282 msgid "Automatic save failed for file: %1" msgstr "Automatische Sicherung für %1 fehlgeschagen" #: base/sem_mediator.cpp:285 msgid "%1 saved automatically" msgstr "%1 automatisch gesichert" #: base/sem_mediator.cpp:304 msgid "Color %1" msgstr "Farbe %1" #: base/sem_mediator.cpp:617 msgid "File saving: missing file %1" msgstr "Dateisicherung: fehlende Datei %1" #: base/sem_mediator.cpp:642 base/sem_mediator.cpp:1147 #: base/sem_mediator.cpp:1190 msgid "Missing bindings for opening files" msgstr "Fehlende Verknüpfung für geöffnete Datei" #: base/sem_mediator.cpp:693 msgid "Missing filter file %1 for opening files" msgstr "Fehlende Filterdatei %1 für geöffnete Datei " #: base/sem_mediator.cpp:693 base/sem_mediator.cpp:708 msgid "Broken installation" msgstr "Fehlerhafte Installation" #: base/sem_mediator.cpp:708 msgid "Missing python bindings for opening files" msgstr "Fehlende Python-Bindings für geöffnete Datei" #: base/sem_mediator.cpp:724 msgid "Could not load the document %1" msgstr "Dokument %1 kann nicht geladen wetden" #: base/sem_mediator.cpp:724 msgid "Broken document" msgstr "Fehlerhaftes Dokument" #: base/sem_mediator.cpp:1113 msgid "Code generation failed: missing file %1" msgstr "Code-Erstellung fehlgeschlagen: fehlende Datei %1" #: base/sem_mediator.cpp:1152 msgid "Document generation completed successfully" msgstr "Dokument erfolgreich erstellt" #: browser.cpp:21 canvas_view.cpp:143 msgid "Toggle fullscreen" msgstr "Umschaltung auf/von Vollbild" #: canvas_view.cpp:92 msgid "Add an element" msgstr "Element hinzufügen" #: canvas_view.cpp:97 fig/box_view.cpp:192 msgid "Delete selection" msgstr "Auswahl entfernen" #: canvas_view.cpp:102 msgid "Insert a sibling" msgstr "Schwesterelement einfügen" #: canvas_view.cpp:107 msgid "Move up" msgstr "Bewege hoch" #: canvas_view.cpp:108 msgid "Move down" msgstr "Bewege runter" #: canvas_view.cpp:109 msgid "Move left" msgstr "Bewege nach links" #: canvas_view.cpp:110 msgid "Move right" msgstr "Bewege nach rechts" #: canvas_view.cpp:112 msgid "Select up" msgstr "oben auwählen" #: canvas_view.cpp:113 msgid "Select down" msgstr "unten auswählen" #: canvas_view.cpp:114 msgid "Select left" msgstr "links auswählen" #: canvas_view.cpp:115 msgid "Select right" msgstr "rechts auswählen" #: canvas_view.cpp:118 msgid "Select subtree" msgstr "Auswahl Subtree" #: canvas_view.cpp:123 msgid "Next root" msgstr "nächter Baum" #: canvas_view.cpp:126 msgid "Toggle edit" msgstr "Ändern ein" #: canvas_view.cpp:131 msgid "Cancel edit" msgstr "Abbruch Ändern" #: canvas_view.cpp:147 msgid "Colors" msgstr "Farben" #: canvas_view.cpp:158 msgid "Text" msgstr "Text" #: canvas_view.cpp:159 msgid "Diagram" msgstr "Diagramm" #: canvas_view.cpp:160 msgid "Table" msgstr "Tabelle" #: canvas_view.cpp:161 msgid "Image" msgstr "Bild" #: canvas_view.cpp:630 msgid "Color" msgstr "Farbe" #: canvas_view.cpp:680 msgid "Flag" msgstr "Kennzeichnung" #: canvas_view.cpp:1003 msgid "Click to set Item %1" msgstr "Klicken um Element %1 zu setzen" #: canvas_view.cpp:1346 msgid "*.png|PNG Files (*.png)" msgstr "*.png|PNG Dateien (*.png)" #: canvas_view.cpp:1384 msgid "No destination file selected" msgstr "Keine Zieldatei ausgewählt" #: canvas_view.cpp:1419 msgid "Exported '%1'" msgstr "'%1' exportiert" #: canvas_view.cpp:1421 msgid "Could not save to %1" msgstr "%1 kann nicht gesichert werden" #: canvas_view.cpp:1421 msgid "Missing picture" msgstr "fehlendes Bild" #: canvas_view.cpp:1713 msgid "Semantik map" msgstr "Semantik map" #: canvas_view.cpp:1763 fig/box_view.cpp:1922 msgid "Printing cancelled" msgstr "Druck abgebrochen" #: canvas_view.cpp:1774 fig/box_view.cpp:1933 msgid "Printing completed" msgstr "Druck vollständig" #: canvas_view.cpp:1778 fig/box_view.cpp:1937 msgid "Problem during printing :-(" msgstr "Problem während des Drucks :-(" #: config_dialog.cpp:29 msgid "Document settings" msgstr "Dokumenteneinstellungen" #: config_dialog.cpp:37 msgid "Reorganization type" msgstr "Art der Reorganisation" #: config_dialog.cpp:41 msgid "Item position after keyboard insertion" msgstr "Elementeposition nach Tastatur-Einfügung" #: config_dialog.cpp:45 msgid "Connection type" msgstr "Verbindungsart" #: config_dialog.cpp:49 msgid "Save document automatically" msgstr "Dokument automatisch sichern" #: config_dialog.cpp:53 msgid "Background color" msgstr "Hintergrundfarbe" #: config_dialog.cpp:58 msgid "Fixed" msgstr "fest" #: config_dialog.cpp:58 msgid "Force-based" msgstr "Einflussbasiert" #: config_dialog.cpp:58 msgid "Incremental" msgstr "Inkrementell" #: config_dialog.cpp:62 msgid "Close to parent" msgstr "am Übergeordeten" #: config_dialog.cpp:62 msgid "Reorganize map" msgstr "Reorganisiert" #: config_dialog.cpp:66 msgid "Lines" msgstr "Linien" #: config_dialog.cpp:66 msgid "Splines" msgstr "Kurven" #: config_dialog.cpp:70 msgid " min" msgstr " min" #: config_dialog.cpp:73 msgid "" "Interval in minutes for saving the document automatically, 0 for disabling this feature" msgstr "" "Intervall in Minuten zur automatischen Sicherung des Dokuments, 0 zum ausschalten der Sicherung" #: data_view.cpp:17 msgid "

    No item selected

    " msgstr "

    Kein Element ausgewählt

    " #: doc_dialog.cpp:30 msgid "First Name" msgstr "Vorname" #: doc_dialog.cpp:34 generator_dialog.cpp:56 msgid "Name" msgstr "Name" #: doc_dialog.cpp:38 msgid "Organization" msgstr "Organisation" #: doc_dialog.cpp:42 msgid "Email" msgstr "E-mail" #: export_map_dialog.cpp:31 msgid "Export the map" msgstr "Map exportieren" #: export_map_dialog.cpp:37 msgid "File to write" msgstr "Datei zur Speicherung" #: export_map_dialog.cpp:43 msgid "Width" msgstr "Breite" #: export_map_dialog.cpp:51 msgid "Height" msgstr "Höhe" #: fig/box_class_properties.cpp:89 vars_view.cpp:77 msgid "Code complete" msgstr "Code vollständig" #: fig/box_class_properties.cpp:90 vars_view.cpp:78 msgid "Ctrl+space" msgstr "Strg+Leertaste" #: fig/box_class_properties.cpp:246 msgid "Class properties" msgstr "Klasseneigenschaften" #: fig/box_class_properties.cpp:283 msgid "No class name given" msgstr "Kein Klassenname vergeben" #: fig/box_class_properties.cpp:283 msgid "Missing class name" msgstr "Klassenname fehlt" #: fig/box_document_properties.cpp:27 msgid "Diagram properties" msgstr "Diagrammeigenschaften" #: fig/box_document_properties.cpp:37 msgid "Font" msgstr "Schriftart" #: fig/box_document_properties.cpp:39 msgid "Font for diagram objects" msgstr "Schriftart für Diagrammobjekte" #: fig/box_fork.cpp:334 fig/box_item.cpp:136 msgid "%1 x %2" msgstr "%1 x %2" #: fig/box_item.cpp:192 msgid "Diagram box properties" msgstr "Diagramm-Box-Eigenschaften" #: fig/box_item.cpp:193 msgid "Text:" msgstr "Text:" #: fig/box_link_properties.cpp:23 msgid "Link properties" msgstr "Verbindungseigenschaften" #: fig/box_link_properties.cpp:33 msgid "Thickness" msgstr "Dicke" #: fig/box_link_properties.cpp:37 msgid "Line Type" msgstr "Linientyp" #: fig/box_link_properties.cpp:41 msgid "Line Style" msgstr "Linienart" #: fig/box_link_properties.cpp:45 msgid "Origin arrow" msgstr "Pfeilursprung" #: fig/box_link_properties.cpp:49 msgid "Target arrow" msgstr "Pfeilziel" #: fig/box_link_properties.cpp:59 msgid "Zigzag" msgstr "Zickzack" #: fig/box_link_properties.cpp:60 msgid "Straight" msgstr "Gerade" #: fig/box_link_properties.cpp:64 msgid "Invisible line" msgstr "Unsichtbare Linie" #: fig/box_link_properties.cpp:65 msgid "Solid Line" msgstr "durchgehende Linie" #: fig/box_link_properties.cpp:66 msgid "Dash Line" msgstr "Strichlinie" #: fig/box_link_properties.cpp:67 msgid "Dot Line" msgstr "Punktlinie" #: fig/box_link_properties.cpp:71 fig/box_link_properties.cpp:79 msgid "No arrow" msgstr "Kein Pfeil" #: fig/box_link_properties.cpp:72 fig/box_link_properties.cpp:80 msgid "Triangle" msgstr "Dreieck voll" #: fig/box_link_properties.cpp:73 fig/box_link_properties.cpp:81 msgid "Link" msgstr "Pfeil" #: fig/box_link_properties.cpp:74 fig/box_link_properties.cpp:82 msgid "Inheritance" msgstr "Dreieck leer" #: fig/box_link_properties.cpp:75 fig/box_link_properties.cpp:83 msgid "Aggregation" msgstr "Raute" #: fig/box_matrix.cpp:181 msgid "Last row: %2px, last column: %3px (size: %4 x %5)" msgstr "Letzte Zeile: %2px, letzte Spalte: %3px (Größe: %4 x %5)" #: fig/box_matrix.cpp:197 msgid "Row %1: %2px (size: %3 x %4)" msgstr "Zeile %1: %2px (Größe: %3 x %4)" #: fig/box_matrix.cpp:213 msgid "Column %1: %2px (size: %3 x %4)" msgstr "Spalte %1: %2px (Größe: %3 x %4)" #: fig/box_view.cpp:102 msgid "box_item" msgstr "box item" #: fig/box_view.cpp:104 msgid "id" msgstr "ID" #: fig/box_view.cpp:109 fig/box_view.cpp:119 msgid "c1" msgstr "c1" #: fig/box_view.cpp:110 fig/box_view.cpp:121 msgid "c2" msgstr "c2" #: fig/box_view.cpp:111 msgid "text" msgstr "text" #: fig/box_view.cpp:112 msgid "col" msgstr "col" #: fig/box_view.cpp:115 fig/box_view.cpp:151 msgid "box_link" msgstr "box link" #: fig/box_view.cpp:118 msgid "p1" msgstr "p1" #: fig/box_view.cpp:120 msgid "p2" msgstr "p2" #: fig/box_view.cpp:133 msgid "pen_style" msgstr "pen style" #: fig/box_view.cpp:134 msgid "border_width" msgstr "Randbreite" #: fig/box_view.cpp:138 msgid "box_link_offset" msgstr "box link offset" #: fig/box_view.cpp:142 msgid "x" msgstr "x" #: fig/box_view.cpp:142 msgid "y" msgstr "y" #: fig/box_view.cpp:182 msgid "Properties..." msgstr "Eigenschaften..." #: fig/box_view.cpp:187 msgid "Activity" msgstr "Aktivität" #: fig/box_view.cpp:188 msgid "Ctrl+Return" msgstr "Strg+Return" #: fig/box_view.cpp:193 msgid "Delete" msgstr "Entfernen" #: fig/box_view.cpp:197 msgid "Color..." msgstr "Farbe..." #: fig/box_view.cpp:202 msgid "Raise" msgstr "Erhöhen" #: fig/box_view.cpp:203 msgid "PgUp" msgstr "Bild hoch (PgUp)" #: fig/box_view.cpp:207 msgid "Send back" msgstr "send back" #: fig/box_view.cpp:208 msgid "PgDown" msgstr "Bild runter (PgDown)" #: fig/box_view.cpp:212 msgid "Floating text" msgstr "Fließtext" #: fig/box_view.cpp:214 msgid "Component" msgstr "Komponente" #: fig/box_view.cpp:216 msgid "Node" msgstr "Node" #: fig/box_view.cpp:218 msgid "Decision" msgstr "Entscheidung" #: fig/box_view.cpp:220 msgid "Database" msgstr "Datenbank" #: fig/box_view.cpp:222 msgid "Activity start" msgstr "Aktivität Beginn" #: fig/box_view.cpp:224 msgid "Activity end" msgstr "Aktivität Ende" #: fig/box_view.cpp:226 msgid "Horizontal fork/join" msgstr "Waagerechte Abgrenzung" #: fig/box_view.cpp:228 msgid "Vertical fork/join" msgstr "Senkrechte Abgrenzung" #: fig/box_view.cpp:230 msgid "Actor" msgstr "Aktor" #: fig/box_view.cpp:232 msgid "Usecase" msgstr "Usecase" #: fig/box_view.cpp:234 msgid "Matrix" msgstr "Tabelle" #: fig/box_view.cpp:236 msgid "Boundary" msgstr "Umrandung" #: fig/box_view.cpp:238 msgid "Class" msgstr "Klasse" #: fig/box_view.cpp:241 msgid "Import from file..." msgstr "Aus Datei importieren..." #: fig/box_view.cpp:243 msgid "Export to file..." msgstr "In Datei exportieren..." #: fig/box_view.cpp:245 msgid "Copy image to clipboard" msgstr "Bild in Zwischenablage kopieren" #: fig/box_view.cpp:267 msgid "File operations" msgstr "Dateioperationen" #: fig/box_view.cpp:279 msgid "More elements" msgstr "Mehr Elemente" #: fig/box_view.cpp:317 msgid "Alignment" msgstr "Ausrichtung" #: fig/box_view.cpp:319 msgid "Align left" msgstr "Ausrichtung links" #: fig/box_view.cpp:320 msgid "Align center" msgstr "Ausrichtung zentriert" #: fig/box_view.cpp:321 msgid "Align right" msgstr "Ausrichtung rechts" #: fig/box_view.cpp:323 msgid "Align top" msgstr "Ausrichtung oben" #: fig/box_view.cpp:324 msgid "Align middle" msgstr "Ausrichtung mitte" #: fig/box_view.cpp:325 msgid "Align bottom" msgstr "Ausrichtung unten" #: fig/box_view.cpp:328 msgid "Size" msgstr "Größe" #: fig/box_view.cpp:330 msgid "Same width" msgstr "Gleiche Breite" #: fig/box_view.cpp:331 msgid "Same height" msgstr "Gleiche Höhe" #: fig/box_view.cpp:332 msgid "Same width and height" msgstr "Gleiche Breite und Höhe" #: fig/box_view.cpp:589 fig/box_view.cpp:1871 msgid "Semantik diagram" msgstr "Semantik Diagramm" #: fig/box_view.cpp:1684 fig/box_view.cpp:1720 fig/semantik_d_win.cpp:280 msgid "*.semd|Semantik diagram (*.semd)" msgstr "*.semd|Semantik Diagramm (*.semd)" #: fig/box_view.cpp:1685 fig/semantik_d_win.cpp:281 msgid "Choose a file to open" msgstr "Datei zum Öffnen wählen" #: fig/box_view.cpp:1721 semantik.cpp:419 semantik.cpp:481 msgid "Choose a file name" msgstr "Dateiname wählen" #: fig/box_view.cpp:1735 semantik.cpp:432 msgid "" "The file \"%1\" already exists.\n" "Overwrite it?" msgstr "" "Die Datei \"%1\" existiert bereits.\n" "Diese überschreiben?" #: fig/box_view.cpp:1736 semantik.cpp:433 msgid "Overwrite existing file" msgstr "Überschreibe existierende Datei" #: fig/box_view.cpp:1758 fig/box_view.cpp:1776 semantik.cpp:444 #: semantik.cpp:466 msgid "Saved '%1'" msgstr "Gesichert '%1'" #: fig/matrix_dialog.cpp:32 table_dialog.cpp:32 msgid "Rows" msgstr "Zeilen" #: fig/matrix_dialog.cpp:36 table_dialog.cpp:36 msgid "Columns" msgstr "Spalten" #: fig/semantik_d_win.cpp:64 semantik.cpp:202 msgid "Ctrl+H" msgstr "Strg+H" #: fig/semantik_d_win.cpp:68 msgid "Files" msgstr "&Dateien" #: fig/semantik_d_win.cpp:80 msgid "This is Semantik-d" msgstr "Semantik" #: fig/semantik_d_win.cpp:185 msgid "[Untitled]" msgstr "[Unbenannt]" #: fig/semantik_d_win.cpp:246 semantik.cpp:548 msgid "Untitled" msgstr "Unbenannt" #: fig/semantik_d_win.cpp:249 semantik.cpp:551 msgid "" "The document \"%1\" has been modified.\n" "Do you want to save your changes or discard them?" msgstr "" "Das Dokument \"%1\" wurde geändert.\n" "Sollen die Änderungen gesichert werden oder verfallen?" #: fig/semantik_d_win.cpp:250 semantik.cpp:552 msgid "Close Document" msgstr "Dokument schließen" #: fig/semantik_d_win.cpp:385 semantik.cpp:492 msgid " [Modified] " msgstr " [Geändert] " #: fig/semantik_d_win.cpp:390 msgid "Semantik Diagram %1" msgstr "Semantik Diagramm %1" #: fig/semantik_d_win.cpp:394 msgid "%1 %2 - Semantik Diagram" msgstr "%1 %2 - Semantik Diagramm" #: fig/semd.cpp:26 msgid "A tool for editing and organizing Semantik diagrams" msgstr "Tool zum Ändern und Organisieren von Semantik Diagrammen" #: fig/semd.cpp:42 main.cpp:34 msgid "A file to open on startup" msgstr "Datei beim Start öffnen" #: fig/semd.cpp:43 msgid "An output file for exporting the diagram" msgstr "Eine Ausgabedatei zum Export des Diagrammes" #: fig/semd.cpp:44 msgid "Diagram width for printing" msgstr "Diagrammbreite zum Druck" #: fig/semd.cpp:45 msgid "Diagram height for printing" msgstr "Diagrammhöhe zum Druck" #: fig/semd.cpp:47 msgid "Semantik-d" msgstr "Semantik-d" #: fig/semd.cpp:47 msgid "(C) 2013-2015 Thomas Nagy" msgstr "(C) 2007-2015 Thomas Nagy" #: fig/semd.cpp:49 main.cpp:40 msgid "Thomas Nagy" msgstr "Thomas Nagy" #: generator_dialog.cpp:30 msgid "Generate documents" msgstr "Dokument erstellen" #: generator_dialog.cpp:36 msgid "Generators" msgstr "Erstellungsart" #: generator_dialog.cpp:39 msgid "Description" msgstr "Beschreibung" #: generator_dialog.cpp:63 msgid "Location" msgstr "Ort" #: generator_dialog.cpp:114 msgid "No document generator chosen." msgstr "Keine Erstellungsart gewählt." #: generator_dialog.cpp:114 msgid "Missing data" msgstr "Fehlende Daten" #: generator_dialog.cpp:120 msgid "Invalid output directory %1" msgstr "Ungültiger Ausgabeordner %1" #: generator_dialog.cpp:120 msgid "Missing location" msgstr "Fehlender Ort" #: image_view.cpp:37 msgid "Change picture" msgstr "Bild ändern" #: image_view.cpp:41 msgid "Clear picture" msgstr "Bild löschen" #: image_view.cpp:66 msgid "Click to set a picture" msgstr "Klicken um ein Bild zu setzen" #: image_view.cpp:70 msgid "Select an item on the map" msgstr "Element der Map auswählen" #: image_view.cpp:166 msgid "*.png *.jpg *.jpeg *.gif|Image Files (*.png *.jpg *.jpeg *.gif)" msgstr "*.png *.jpg *.jpeg *.gif|Bilddatei (*.png *.jpg *.jpeg *.gif)" #: image_view.cpp:167 msgid "Choose a picture" msgstr "Bild wählen" #: image_view.cpp:179 msgid "Could not load the picture" msgstr "Bild kann nicht geladen wählen" #: main.cpp:24 msgid "" "A mind-mapping tool for KDE\n" "Available exclusively for open systems such as OpenSuse, Gentoo or Fedora." msgstr "" "Ein Mind Map Tool für KDE\n" "exklusiv für offene Systeme wie OpenSuse, Gentoo oder Fedora verfügbar." #: main.cpp:35 msgid "An output file for printing the map" msgstr "Ausgabedatei zum Drucken der Map" #: main.cpp:37 msgid "Semantik" msgstr "Semantik" #: main.cpp:38 msgid "(C) 2007-2015 Thomas Nagy" msgstr "(C) 2007-2015 Thomas Nagy" #. i18n: file: data/semantik-dui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantikui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantik-dui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantikui.rc:5 #. i18n: ectx: Menu (file) #: po/rc.cpp:3 po/rc.cpp:21 rc.cpp:3 rc.cpp:21 msgid "&File" msgstr "&Datei" #. i18n: file: data/semantik-dui.rc:25 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantikui.rc:8 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantik-dui.rc:25 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantikui.rc:8 #. i18n: ectx: Menu (edit) #: po/rc.cpp:6 po/rc.cpp:24 rc.cpp:6 rc.cpp:24 msgid "&Edit" msgstr "&Bearbeiten" #. i18n: file: data/semantik-dui.rc:28 #. i18n: ectx: Menu (view) #. i18n: file: data/semantikui.rc:13 #. i18n: ectx: Menu (view) #. i18n: file: data/semantik-dui.rc:28 #. i18n: ectx: Menu (view) #. i18n: file: data/semantikui.rc:13 #. i18n: ectx: Menu (view) #: po/rc.cpp:9 po/rc.cpp:27 rc.cpp:9 rc.cpp:27 msgid "&View" msgstr "&Ansicht" #. i18n: file: data/semantik-dui.rc:33 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantikui.rc:21 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantik-dui.rc:33 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantikui.rc:21 #. i18n: ectx: Menu (tools) #: po/rc.cpp:12 po/rc.cpp:30 rc.cpp:12 rc.cpp:30 msgid "&Tools" msgstr "&Tools" #. i18n: file: data/semantik-dui.rc:36 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantikui.rc:24 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantik-dui.rc:36 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantikui.rc:24 #. i18n: ectx: Menu (settings) #: po/rc.cpp:15 po/rc.cpp:33 rc.cpp:15 rc.cpp:33 msgid "&Settings" msgstr "&Einstellungen" #. i18n: file: data/semantik-dui.rc:39 #. i18n: ectx: Menu (help) #. i18n: file: data/semantikui.rc:27 #. i18n: ectx: Menu (help) #. i18n: file: data/semantik-dui.rc:39 #. i18n: ectx: Menu (help) #. i18n: file: data/semantikui.rc:27 #. i18n: ectx: Menu (help) #: po/rc.cpp:18 po/rc.cpp:36 rc.cpp:18 rc.cpp:36 msgid "&Help" msgstr "&Hilfe" #. i18n: file: data/semantikui.rc:41 #. i18n: ectx: ToolBar (colorsToolBar) #: po/rc.cpp:39 rc.cpp:39 msgid "Colors Toolbar" msgstr "Toolbar für Farben" #. i18n: file: data/semantikui.rc:45 #. i18n: ectx: ToolBar (flagsToolBar) #: po/rc.cpp:42 rc.cpp:42 msgid "Flags Toolbar" msgstr "Toolbar für Kennzeichnungen" #: po/rc.cpp:43 rc.cpp:43 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "St. Briest" #: po/rc.cpp:44 rc.cpp:44 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr " " #: pre_view.cpp:23 msgid "

    No preview available
    at this time

    " msgstr "

    Zur Zeit keine Vorschau verfügbar

    " #: semantik.cpp:46 msgid "" "The map is empty, Semantik\n" "cannot create documents from it" msgstr "" "Die Map ist leer, Semantik\n" "Daraus kann kein Dokument erstellt werden" #: semantik.cpp:46 msgid "Empty map" msgstr "Leere Map" #: semantik.cpp:53 msgid "Template folder %1 is not readable" msgstr "Vorlagenordner %1 ist nicht lesbar" #: semantik.cpp:167 msgid "&Reorganize the map" msgstr "Map &reorganisieren" #: semantik.cpp:169 msgid "Ctrl+R" msgstr "Strg+R" #: semantik.cpp:172 msgid "&Export the map..." msgstr "Map &exportieren..." #: semantik.cpp:174 msgid "Ctrl+Shift+E" msgstr "Strg+Shift+E" #: semantik.cpp:179 msgid "&Generate..." msgstr "&Erstellen..." #: semantik.cpp:182 msgid "Ctrl+G" msgstr "Strg+G" #: semantik.cpp:188 msgid "CustomColor" msgstr "Benutzerdefinierte Farbe" #: semantik.cpp:211 msgid "Data" msgstr "Daten" #: semantik.cpp:235 msgid "Variables" msgstr "Variablen" #: semantik.cpp:244 msgid "Preview" msgstr "Vorschau" #: semantik.cpp:256 msgid "Linear view" msgstr "Struktur-Ansicht" #: semantik.cpp:350 msgid "Welcome to Semantik" msgstr "Willkommen bei Semantik" #: semantik.cpp:418 msgid "*.sem|Semantik file (*.sem)" msgstr "*.sem|Semantikdateien (*.sem)" #: semantik.cpp:480 msgid "*.sem *.kdi *.mm *.vym|All Supported Files (*.sem *.kdi *.mm *.vym)" msgstr "*.sem *.kdi *.mm *.vym|unterstützte Dateien (*.sem *.kdi *.mm *.vym)" #: semantik.cpp:497 msgid "Semantik %1" msgstr "Semantik %1" #: semantik.cpp:501 msgid "%1 %2 - Semantik" msgstr "%1 %2 - Semantik" #: table_view.cpp:26 table_view.cpp:80 msgid "Add Row" msgstr "Zeile hinzufügen" #: table_view.cpp:27 msgid "Add a row" msgstr "Eine Zeile hinzufügen" #: table_view.cpp:31 table_view.cpp:81 msgid "Add Column" msgstr "Spalte hinzufügen" #: table_view.cpp:32 msgid "Add a column" msgstr "Eine Spalte hinzufügen" #: table_view.cpp:37 table_view.cpp:82 msgid "Remove Row" msgstr "Zeile entfernen" #: table_view.cpp:38 msgid "Remove a row" msgstr "Eine Zeile entfernen" #: table_view.cpp:42 table_view.cpp:83 msgid "Remove Column" msgstr "Spalte entfernen" #: table_view.cpp:43 msgid "Remove a column" msgstr "Eine Spalte entfernen" #: table_view.cpp:47 msgid "Redimension" msgstr "Zeile/Spalte ändern" #: table_view.cpp:48 msgid "Change table dimensions" msgstr "Zeilen und Spalten ändern" #: text_view.cpp:41 msgid "&Bold" msgstr "&Fett" #: text_view.cpp:42 msgid "Ctrl+B" msgstr "Strg+B" #: text_view.cpp:45 msgid "&Italic" msgstr "&Kursiv" #: text_view.cpp:46 msgid "Ctrl+I" msgstr "Strg+I" #: text_view.cpp:49 msgid "&Underline" msgstr "&Unterstrichen" #: text_view.cpp:50 msgid "Ctrl+U" msgstr "Strg+U" #~ msgid "Data type" #~ msgstr "Datentyp" #~ msgid "sl" #~ msgstr "sl" #~ msgid "wl" #~ msgstr "wl" #~ msgid "Ready" #~ msgstr "Bereit" #~ msgid "Insert child" #~ msgstr "Kind einfügen" #~ msgid "dirty" #~ msgstr "schlecht" #~ msgid "Add Box" #~ msgstr "Box einfügen" #~ msgid "Connection width" #~ msgstr "Verbindungsbreite" #~ msgid "1px" #~ msgstr "1px" #~ msgid "2px" #~ msgstr "2px" #~ msgid "3px" #~ msgstr "3px" #~ msgid "Connection style" #~ msgstr "Verbindungsart" #~ msgid "dot line" #~ msgstr "Punktlinie" #~ msgid "exclude the table" #~ msgstr "Tabelle ausschließen" #~ msgid "fit the item on one slide" #~ msgstr "Element auf Folie einpassen" #~ msgid "picture caption" #~ msgstr "Bildbezeichnung" #~ msgid "picture dimension in pdf files" #~ msgstr "Bildmaße in PDF Datei" #~ msgid "html div style: style=\"width: 99px;\"" #~ msgstr "html div style: style=\"width: 99px;\"" #~ msgid "html picture style: style=\"width: 99px;\"" #~ msgstr "html picture style: style=\"width: 99px;\"" #~ msgid "do not use this item for generating slides" #~ msgstr "Dieses Element nicht für Folienerstellung" #~ msgid "command to launch (%s is the resulting file)" #~ msgstr "Befehl zum Aufruf (%s ist die Ergebnisdatei)" #~ msgid "cd `echo %s | sed s/main.tex//` && ./waf configure && waf --view" #~ msgstr "cd `echo %s | sed s/main.tex//` && ./waf configure && waf --view" #~ msgid "firefox %s" #~ msgstr "firefox %s" #~ msgid "ooimpress %s" #~ msgstr "ooimpress %s" #~ msgid "oowriter %s" #~ msgstr "oowriter %s" #~ msgid "document author" #~ msgstr "Dokumentenautor" #~ msgid "turn off the document author (latex)" #~ msgstr "Dokumentenautor entfernen (latex)" #~ msgid "document class (latex: a4, report, book)" #~ msgstr "Dokumentenklasse (latex: a4, report, book)" #~ msgid "company" #~ msgstr "Firma" #~ msgid "document date" #~ msgstr "Dokumentendatum" #~ msgid "turn of the document date (latex)" #~ msgstr "Dokumentendatum entfernen (latex)" #~ msgid "location of the presentation" #~ msgstr "Ort der Presentation" #~ msgid "turn off the document title (latex)" #~ msgstr "Dokumententitel entfernen (latex)" #~ msgid "footer center (pdflatex)" #~ msgstr "Fuß zentriert (pdflatex)" #~ msgid "footer left (pdflatex)" #~ msgstr "Fuß linksbündig (pdflatex)" #~ msgid "turn off the fancy output" #~ msgstr "turn off the fancy output" #~ msgid "footer right" #~ msgstr "Fuß rechtsbündig" #~ msgid "header center (pdflatex)" #~ msgstr "Kopf zentriert (pdflatex)" #~ msgid "header left" #~ msgstr "Kopf linksbündig" #~ msgid "header right" #~ msgstr "Kopf rechtsbündig" #~ msgid "openoffice.org language (fr_FR)" #~ msgstr "Sprache openoffice.org (fr_FR)" #~ msgid "openoffice.org presentation language" #~ msgstr "Präsentationssprache openoffice.org" #~ msgid "openoffice.org text language" #~ msgstr "Textsprache openoffice.org" #~ msgid "Warsaw (JuanLesPins, Montpellier, )" #~ msgstr "Warsaw (JuanLesPins, Montpellier, )" #~ msgid "Generator dialog" #~ msgstr "Erstellungsdialog" #~ msgid "&Ok" #~ msgstr "&OK" #~ msgid "File %1 does not exist" #~ msgstr "Datei %1 existiert nicht" #~ msgid "File %1 could not be opened" #~ msgstr "Datei %1 kann nicht geöffnet werden" #~ msgid "something bad happened" #~ msgstr "Etwas schlechtes ist passiert" #~ msgid "something worse happened" #~ msgstr "Etwas schlimmes ist passiert" #~ msgid "&Select" #~ msgstr "&Auswahl" #~ msgid "&Sort" #~ msgstr "&Sortieren" #~ msgid "exclude the picture" #~ msgstr "Bild ausschließen" #~ msgid "latex language: english (frenchb, )" #~ msgstr "latex Sprache: english (frenchb, )" semantik-0.9.5/src/po/el.po000664 000000 000000 00000066364 12732552614 015513 0ustar00rootroot000000 000000 # , 2009. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://github.com/ita1024/semantik/issues\n" "POT-Creation-Date: 2015-02-08 16:12+0100\n" "PO-Revision-Date: 2009-07-28 12:17+0300\n" "Last-Translator: \n" "Language-Team: Ελληνικά \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: base/data_item.cpp:60 canvas_view.cpp:246 canvas_view.cpp:298 #: canvas_view.cpp:310 msgid "Empty" msgstr "Κενό" #: base/flag_scheme.cpp:14 msgid "Flag item(s) as..." msgstr "Σημείωση αντικειμένου(ων) ως..." #: base/sem_mediator.cpp:282 msgid "Automatic save failed for file: %1" msgstr "Απέτυχε η αυτόματη αποθήκευση για το αρχείο: %1" #: base/sem_mediator.cpp:285 msgid "%1 saved automatically" msgstr "%1 αποθηκεύτηκε αυτόματα" #: base/sem_mediator.cpp:304 msgid "Color %1" msgstr "Χρώμα %1" #: base/sem_mediator.cpp:617 msgid "File saving: missing file %1" msgstr "Αποθήκευση αρχείου: το αρχείο %1 λείπει" #: base/sem_mediator.cpp:642 base/sem_mediator.cpp:1147 #: base/sem_mediator.cpp:1190 msgid "Missing bindings for opening files" msgstr "Ανυπαρξία δεσμών για το άνοιγμα των αρχείων" #: base/sem_mediator.cpp:693 msgid "Missing filter file %1 for opening files" msgstr "Έλλειψη φίλτρου αρχείου %1 για το άνοιγμα των αρχείων" #: base/sem_mediator.cpp:693 base/sem_mediator.cpp:708 msgid "Broken installation" msgstr "" #: base/sem_mediator.cpp:708 #, fuzzy msgid "Missing python bindings for opening files" msgstr "Ανυπαρξία δεσμών για το άνοιγμα των αρχείων" #: base/sem_mediator.cpp:724 msgid "Could not load the document %1" msgstr "" #: base/sem_mediator.cpp:724 #, fuzzy msgid "Broken document" msgstr "Κλείσιμο εγγράφου" #: base/sem_mediator.cpp:1113 msgid "Code generation failed: missing file %1" msgstr "Η δημιουργία κώδικα απέτυχε: αρχείο που λείπει %1" #: base/sem_mediator.cpp:1152 msgid "Document generation completed successfully" msgstr "" #: browser.cpp:21 canvas_view.cpp:143 msgid "Toggle fullscreen" msgstr "" #: canvas_view.cpp:92 #, fuzzy msgid "Add an element" msgstr "Προσθήκη μιας στήλης" #: canvas_view.cpp:97 fig/box_view.cpp:192 msgid "Delete selection" msgstr "Διαγραφή κόμβου" #: canvas_view.cpp:102 #, fuzzy msgid "Insert a sibling" msgstr "Εισαγωγή αδελφικού κόμβου" #: canvas_view.cpp:107 msgid "Move up" msgstr "Μετακίνηση πάνω" #: canvas_view.cpp:108 msgid "Move down" msgstr "Μετακίνηση κάτω" #: canvas_view.cpp:109 msgid "Move left" msgstr "Μετακίνηση αριστερά" #: canvas_view.cpp:110 msgid "Move right" msgstr "Μετακίνηση δεξιά" #: canvas_view.cpp:112 msgid "Select up" msgstr "Επιλογή πάνω" #: canvas_view.cpp:113 msgid "Select down" msgstr "Επιλογή κάτω" #: canvas_view.cpp:114 msgid "Select left" msgstr "Επιλογή αριστερά" #: canvas_view.cpp:115 msgid "Select right" msgstr "Επιλογή δεξιά" #: canvas_view.cpp:118 #, fuzzy msgid "Select subtree" msgstr "Επιλογή πάνω" #: canvas_view.cpp:123 msgid "Next root" msgstr "Επόμενος γονικός κόμβος" #: canvas_view.cpp:126 msgid "Toggle edit" msgstr "Επεξεργασία κόμβου" #: canvas_view.cpp:131 #, fuzzy msgid "Cancel edit" msgstr "&Ακύρωση" #: canvas_view.cpp:147 msgid "Colors" msgstr "Χρώματα" #: canvas_view.cpp:158 msgid "Text" msgstr "Κείμενο" #: canvas_view.cpp:159 msgid "Diagram" msgstr "Διάγραμμα" #: canvas_view.cpp:160 msgid "Table" msgstr "Πίνακας" #: canvas_view.cpp:161 msgid "Image" msgstr "Εικόνα" #: canvas_view.cpp:630 msgid "Color" msgstr "Χρώμα" #: canvas_view.cpp:680 msgid "Flag" msgstr "Σημαία" #: canvas_view.cpp:1003 msgid "Click to set Item %1" msgstr "Κλικ για τον ορισμό αντικειμένου %1" #: canvas_view.cpp:1346 msgid "*.png|PNG Files (*.png)" msgstr "" #: canvas_view.cpp:1384 msgid "No destination file selected" msgstr "" #: canvas_view.cpp:1419 #, fuzzy msgid "Exported '%1'" msgstr "Αποθηκεύτηκε '%1'" #: canvas_view.cpp:1421 #, fuzzy msgid "Could not save to %1" msgstr "Κλικ για τον ορισμό αντικειμένου %1" #: canvas_view.cpp:1421 #, fuzzy msgid "Missing picture" msgstr "Αλλαγή εικόνας" #: canvas_view.cpp:1713 #, fuzzy msgid "Semantik map" msgstr "Semantik" #: canvas_view.cpp:1763 fig/box_view.cpp:1922 msgid "Printing cancelled" msgstr "" #: canvas_view.cpp:1774 fig/box_view.cpp:1933 msgid "Printing completed" msgstr "" #: canvas_view.cpp:1778 fig/box_view.cpp:1937 msgid "Problem during printing :-(" msgstr "" #: config_dialog.cpp:29 #, fuzzy msgid "Document settings" msgstr "τίτλος εγγράφου" #: config_dialog.cpp:37 msgid "Reorganization type" msgstr "Είδος αναδιοργάνωσης" #: config_dialog.cpp:41 msgid "Connection type" msgstr "Είδος συνδέσμου" #: config_dialog.cpp:45 msgid "Save document automatically" msgstr "Αυτόματη αποθήκευση εγγράφου" #: config_dialog.cpp:49 msgid "Background color" msgstr "Χρώμα παρασκηνίου" #: config_dialog.cpp:54 msgid "Fixed" msgstr "Σταθερό" #: config_dialog.cpp:54 msgid "Force-based" msgstr "Αναγκατικό" #: config_dialog.cpp:54 msgid "Incremental" msgstr "Αυξητικό" #: config_dialog.cpp:58 msgid "Lines" msgstr "Γραμμές" #: config_dialog.cpp:58 msgid "Splines" msgstr "Καμπύλες" #: config_dialog.cpp:62 msgid " min" msgstr "μίνιμουμ" #: config_dialog.cpp:65 msgid "" "Interval in minutes for saving the document automatically, 0 for disabling " "this feature" msgstr "" "Χρονικό διάτημα σε λεπτά για την αυτόματη αποθήκευση του εγγράφου, 0 για " "απενεργοποίηση αυτής της λειτουργίας." #: data_view.cpp:17 msgid "

    No item selected

    " msgstr "

    Δεν επιλέχθηκε αντικείμενο

    " #: doc_dialog.cpp:30 msgid "First Name" msgstr "Όνομα" #: doc_dialog.cpp:34 generator_dialog.cpp:56 msgid "Name" msgstr "Επώνυμο" #: doc_dialog.cpp:38 msgid "Organization" msgstr "Οργανισμός" #: doc_dialog.cpp:42 msgid "Email" msgstr "Email" #: export_map_dialog.cpp:31 #, fuzzy msgid "Export the map" msgstr "Κενός χάρτης" #: export_map_dialog.cpp:37 msgid "File to write" msgstr "" #: export_map_dialog.cpp:43 msgid "Width" msgstr "" #: export_map_dialog.cpp:51 #, fuzzy msgid "Height" msgstr "Μετακίνηση δεξιά" #: fig/box_class_properties.cpp:89 vars_view.cpp:77 msgid "Code complete" msgstr "Ο κώδικας συμπληρώθηκε" #: fig/box_class_properties.cpp:90 vars_view.cpp:78 msgid "Ctrl+space" msgstr "" #: fig/box_class_properties.cpp:246 msgid "Class properties" msgstr "" #: fig/box_class_properties.cpp:283 msgid "No class name given" msgstr "" #: fig/box_class_properties.cpp:283 #, fuzzy msgid "Missing class name" msgstr "Λείπουν δεδομένα" #: fig/box_document_properties.cpp:27 msgid "Diagram properties" msgstr "" #: fig/box_document_properties.cpp:37 msgid "Font" msgstr "" #: fig/box_document_properties.cpp:39 msgid "Font for diagram objects" msgstr "" #: fig/box_fork.cpp:334 fig/box_item.cpp:136 msgid "%1 x %2" msgstr "" #: fig/box_item.cpp:192 msgid "Diagram box properties" msgstr "" #: fig/box_item.cpp:193 #, fuzzy msgid "Text:" msgstr "Κείμενο" #: fig/box_link_properties.cpp:23 msgid "Link properties" msgstr "" #: fig/box_link_properties.cpp:33 msgid "Thickness" msgstr "" #: fig/box_link_properties.cpp:37 #, fuzzy msgid "Line Type" msgstr "Γραμμική προβολή" #: fig/box_link_properties.cpp:41 msgid "Line Style" msgstr "" #: fig/box_link_properties.cpp:45 msgid "Origin arrow" msgstr "" #: fig/box_link_properties.cpp:49 msgid "Target arrow" msgstr "" #: fig/box_link_properties.cpp:59 msgid "Zigzag" msgstr "" #: fig/box_link_properties.cpp:60 #, fuzzy msgid "Straight" msgstr "Επιλογή δεξιά" #: fig/box_link_properties.cpp:64 msgid "Invisible line" msgstr "" #: fig/box_link_properties.cpp:65 #, fuzzy msgid "Solid Line" msgstr "συμπαγής γραμμής" #: fig/box_link_properties.cpp:66 #, fuzzy msgid "Dash Line" msgstr "γραμμή με παύλες" #: fig/box_link_properties.cpp:67 #, fuzzy msgid "Dot Line" msgstr "Γραμμές" #: fig/box_link_properties.cpp:71 fig/box_link_properties.cpp:79 msgid "No arrow" msgstr "" #: fig/box_link_properties.cpp:72 fig/box_link_properties.cpp:80 msgid "Triangle" msgstr "" #: fig/box_link_properties.cpp:73 fig/box_link_properties.cpp:81 #, fuzzy msgid "Link" msgstr "&Σύνδεση" #: fig/box_link_properties.cpp:74 fig/box_link_properties.cpp:82 msgid "Inheritance" msgstr "" #: fig/box_link_properties.cpp:75 fig/box_link_properties.cpp:83 #, fuzzy msgid "Aggregation" msgstr "Οργανισμός" #: fig/box_matrix.cpp:181 msgid "Last row: %2px, last column: %3px (size: %4 x %5)" msgstr "" #: fig/box_matrix.cpp:197 msgid "Row %1: %2px (size: %3 x %4)" msgstr "" #: fig/box_matrix.cpp:213 msgid "Column %1: %2px (size: %3 x %4)" msgstr "" #: fig/box_view.cpp:102 msgid "box_item" msgstr "" #: fig/box_view.cpp:104 msgid "id" msgstr "" #: fig/box_view.cpp:109 fig/box_view.cpp:119 msgid "c1" msgstr "" #: fig/box_view.cpp:110 fig/box_view.cpp:121 msgid "c2" msgstr "" #: fig/box_view.cpp:111 msgid "text" msgstr "" #: fig/box_view.cpp:112 #, fuzzy msgid "col" msgstr "&Κύλιση" #: fig/box_view.cpp:115 fig/box_view.cpp:151 msgid "box_link" msgstr "" #: fig/box_view.cpp:118 msgid "p1" msgstr "" #: fig/box_view.cpp:120 msgid "p2" msgstr "" #: fig/box_view.cpp:133 msgid "pen_style" msgstr "" #: fig/box_view.cpp:134 msgid "border_width" msgstr "" #: fig/box_view.cpp:138 msgid "box_link_offset" msgstr "" #: fig/box_view.cpp:142 msgid "x" msgstr "" #: fig/box_view.cpp:142 msgid "y" msgstr "" #: fig/box_view.cpp:182 msgid "Properties..." msgstr "" #: fig/box_view.cpp:187 msgid "Activity" msgstr "" #: fig/box_view.cpp:188 msgid "Ctrl+Return" msgstr "" #: fig/box_view.cpp:193 msgid "Delete" msgstr "Διαγραφή" #: fig/box_view.cpp:197 msgid "Color..." msgstr "Χρώμα..." #: fig/box_view.cpp:202 msgid "Raise" msgstr "" #: fig/box_view.cpp:203 msgid "PgUp" msgstr "" #: fig/box_view.cpp:207 msgid "Send back" msgstr "" #: fig/box_view.cpp:208 msgid "PgDown" msgstr "" #: fig/box_view.cpp:212 msgid "Floating text" msgstr "" #: fig/box_view.cpp:214 msgid "Component" msgstr "" #: fig/box_view.cpp:216 msgid "Node" msgstr "" #: fig/box_view.cpp:218 #, fuzzy msgid "Decision" msgstr "Επαναπροσδιορισμός διαστάσεων" #: fig/box_view.cpp:220 #, fuzzy msgid "Database" msgstr "Δεδομένα" #: fig/box_view.cpp:222 msgid "Activity start" msgstr "" #: fig/box_view.cpp:224 msgid "Activity end" msgstr "" #: fig/box_view.cpp:226 msgid "Horizontal fork/join" msgstr "" #: fig/box_view.cpp:228 msgid "Vertical fork/join" msgstr "" #: fig/box_view.cpp:230 msgid "Actor" msgstr "" #: fig/box_view.cpp:232 msgid "Usecase" msgstr "" #: fig/box_view.cpp:234 msgid "Matrix" msgstr "" #: fig/box_view.cpp:236 msgid "Boundary" msgstr "" #: fig/box_view.cpp:238 msgid "Class" msgstr "" #: fig/box_view.cpp:241 msgid "Import from file..." msgstr "" #: fig/box_view.cpp:243 msgid "Export to file..." msgstr "" #: fig/box_view.cpp:245 msgid "Copy image to clipboard" msgstr "" #: fig/box_view.cpp:267 msgid "File operations" msgstr "" #: fig/box_view.cpp:279 msgid "More elements" msgstr "" #: fig/box_view.cpp:317 msgid "Alignment" msgstr "" #: fig/box_view.cpp:319 msgid "Align left" msgstr "" #: fig/box_view.cpp:320 msgid "Align center" msgstr "" #: fig/box_view.cpp:321 #, fuzzy msgid "Align right" msgstr "Επιλογή δεξιά" #: fig/box_view.cpp:323 msgid "Align top" msgstr "" #: fig/box_view.cpp:324 msgid "Align middle" msgstr "" #: fig/box_view.cpp:325 msgid "Align bottom" msgstr "" #: fig/box_view.cpp:328 msgid "Size" msgstr "" #: fig/box_view.cpp:330 msgid "Same width" msgstr "" #: fig/box_view.cpp:331 #, fuzzy msgid "Same height" msgstr "Επιλογή δεξιά" #: fig/box_view.cpp:332 msgid "Same width and height" msgstr "" #: fig/box_view.cpp:589 fig/box_view.cpp:1871 #, fuzzy msgid "Semantik diagram" msgstr "Semantik" #: fig/box_view.cpp:1684 fig/box_view.cpp:1720 fig/semantik_d_win.cpp:280 #, fuzzy msgid "*.semd|Semantik diagram (*.semd)" msgstr "*.sem|Semantik file (*.sem)" #: fig/box_view.cpp:1685 fig/semantik_d_win.cpp:281 #, fuzzy msgid "Choose a file to open" msgstr "Επιλέξτε ένα όνομα αρχείου" #: fig/box_view.cpp:1721 semantik.cpp:419 semantik.cpp:481 msgid "Choose a file name" msgstr "Επιλέξτε ένα όνομα αρχείου" #: fig/box_view.cpp:1735 semantik.cpp:432 msgid "" "The file \"%1\" already exists.\n" "Overwrite it?" msgstr "" #: fig/box_view.cpp:1736 semantik.cpp:433 msgid "Overwrite existing file" msgstr "" #: fig/box_view.cpp:1758 fig/box_view.cpp:1776 semantik.cpp:444 #: semantik.cpp:466 msgid "Saved '%1'" msgstr "Αποθηκεύτηκε '%1'" #: fig/matrix_dialog.cpp:32 table_dialog.cpp:32 msgid "Rows" msgstr "Γραμμές" #: fig/matrix_dialog.cpp:36 table_dialog.cpp:36 msgid "Columns" msgstr "Στήλες" #: fig/semantik_d_win.cpp:64 semantik.cpp:202 msgid "Ctrl+H" msgstr "" #: fig/semantik_d_win.cpp:68 msgid "Files" msgstr "" #: fig/semantik_d_win.cpp:80 #, fuzzy msgid "This is Semantik-d" msgstr "Semantik" #: fig/semantik_d_win.cpp:185 #, fuzzy msgid "[Untitled]" msgstr "Χωρίς τίτλο" #: fig/semantik_d_win.cpp:246 semantik.cpp:548 msgid "Untitled" msgstr "Χωρίς τίτλο" #: fig/semantik_d_win.cpp:249 semantik.cpp:551 msgid "" "The document \"%1\" has been modified.\n" "Do you want to save your changes or discard them?" msgstr "" "Το έγγραφο \"%1\" έχει τροποποιηθεί.\n" "Θέλετε να αποθηκεύσετε τις αλλαγές\n" "ή να τις απορρίψετε;" #: fig/semantik_d_win.cpp:250 semantik.cpp:552 msgid "Close Document" msgstr "Κλείσιμο εγγράφου" #: fig/semantik_d_win.cpp:385 semantik.cpp:492 msgid " [Modified] " msgstr "" #: fig/semantik_d_win.cpp:390 #, fuzzy msgid "Semantik Diagram %1" msgstr "Semantik" #: fig/semantik_d_win.cpp:394 #, fuzzy msgid "%1 %2 - Semantik Diagram" msgstr "%1 - Semantik" #: fig/semd.cpp:26 msgid "A tool for editing and organizing Semantik diagrams" msgstr "" #: fig/semd.cpp:42 main.cpp:34 msgid "A file to open on startup" msgstr "" #: fig/semd.cpp:43 msgid "An output file for exporting the diagram" msgstr "" #: fig/semd.cpp:44 msgid "Diagram width for printing" msgstr "" #: fig/semd.cpp:45 msgid "Diagram height for printing" msgstr "" #: fig/semd.cpp:47 #, fuzzy msgid "Semantik-d" msgstr "Semantik" #: fig/semd.cpp:47 msgid "(C) 2013-2015 Thomas Nagy" msgstr "" #: fig/semd.cpp:49 main.cpp:40 msgid "Thomas Nagy" msgstr "" #: generator_dialog.cpp:30 #, fuzzy msgid "Generate documents" msgstr "Δημιουργοί" #: generator_dialog.cpp:36 msgid "Generators" msgstr "Δημιουργοί" #: generator_dialog.cpp:39 msgid "Description" msgstr "Περιγραφή" #: generator_dialog.cpp:63 msgid "Location" msgstr "Τοποθεσία" #: generator_dialog.cpp:114 msgid "No document generator chosen." msgstr "Δεν επιλέχθηκε δημιουργός εγγράφου." #: generator_dialog.cpp:114 msgid "Missing data" msgstr "Λείπουν δεδομένα" #: generator_dialog.cpp:120 msgid "Invalid output directory %1" msgstr "Μη έγκυρος φάκελος εξαγωγής%1" #: generator_dialog.cpp:120 msgid "Missing location" msgstr "Λείπει η τοποθεσία" #: image_view.cpp:37 msgid "Change picture" msgstr "Αλλαγή εικόνας" #: image_view.cpp:41 msgid "Clear picture" msgstr "Καθαρισμός εικόνας" #: image_view.cpp:66 msgid "Click to set a picture" msgstr "Κάντε κλικ για να ορίσετε μια εικόνα" #: image_view.cpp:70 msgid "Select an item on the map" msgstr "Επιλέξτε ένα αντικείμενο στον χάρτη" #: image_view.cpp:166 #, fuzzy msgid "*.png *.jpg *.jpeg *.gif|Image Files (*.png *.jpg *.jpeg *.gif)" msgstr "Αρχεία εικόνων (*.png *.jpg *.jpeg *.gif)" #: image_view.cpp:167 #, fuzzy msgid "Choose a picture" msgstr "Επιλογή ενός αρχείου" #: image_view.cpp:179 #, fuzzy msgid "Could not load the picture" msgstr "Κάντε κλικ για να ορίσετε μια εικόνα" #: main.cpp:24 msgid "" "A mind-mapping tool for KDE\n" "Available exclusively for open systems such as OpenSuse, Gentoo or Fedora." msgstr "" #: main.cpp:35 msgid "An output file for printing the map" msgstr "" #: main.cpp:37 msgid "Semantik" msgstr "Semantik" #: main.cpp:38 msgid "(C) 2007-2015 Thomas Nagy" msgstr "" #. i18n: file: data/semantik-dui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantikui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantik-dui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantikui.rc:5 #. i18n: ectx: Menu (file) #: po/rc.cpp:3 po/rc.cpp:21 rc.cpp:3 rc.cpp:21 msgid "&File" msgstr "" #. i18n: file: data/semantik-dui.rc:25 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantikui.rc:8 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantik-dui.rc:25 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantikui.rc:8 #. i18n: ectx: Menu (edit) #: po/rc.cpp:6 po/rc.cpp:24 rc.cpp:6 rc.cpp:24 msgid "&Edit" msgstr "" #. i18n: file: data/semantik-dui.rc:28 #. i18n: ectx: Menu (view) #. i18n: file: data/semantikui.rc:13 #. i18n: ectx: Menu (view) #. i18n: file: data/semantik-dui.rc:28 #. i18n: ectx: Menu (view) #. i18n: file: data/semantikui.rc:13 #. i18n: ectx: Menu (view) #: po/rc.cpp:9 po/rc.cpp:27 rc.cpp:9 rc.cpp:27 msgid "&View" msgstr "" #. i18n: file: data/semantik-dui.rc:33 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantikui.rc:21 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantik-dui.rc:33 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantikui.rc:21 #. i18n: ectx: Menu (tools) #: po/rc.cpp:12 po/rc.cpp:30 rc.cpp:12 rc.cpp:30 msgid "&Tools" msgstr "" #. i18n: file: data/semantik-dui.rc:36 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantikui.rc:24 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantik-dui.rc:36 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantikui.rc:24 #. i18n: ectx: Menu (settings) #: po/rc.cpp:15 po/rc.cpp:33 rc.cpp:15 rc.cpp:33 msgid "&Settings" msgstr "" #. i18n: file: data/semantik-dui.rc:39 #. i18n: ectx: Menu (help) #. i18n: file: data/semantikui.rc:27 #. i18n: ectx: Menu (help) #. i18n: file: data/semantik-dui.rc:39 #. i18n: ectx: Menu (help) #. i18n: file: data/semantikui.rc:27 #. i18n: ectx: Menu (help) #: po/rc.cpp:18 po/rc.cpp:36 rc.cpp:18 rc.cpp:36 msgid "&Help" msgstr "" #. i18n: file: data/semantikui.rc:41 #. i18n: ectx: ToolBar (colorsToolBar) #: po/rc.cpp:39 rc.cpp:39 #, fuzzy msgid "Colors Toolbar" msgstr "Χρώματα" #. i18n: file: data/semantikui.rc:45 #. i18n: ectx: ToolBar (flagsToolBar) #: po/rc.cpp:42 rc.cpp:42 msgid "Flags Toolbar" msgstr "" #: po/rc.cpp:43 rc.cpp:43 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: po/rc.cpp:44 rc.cpp:44 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #: pre_view.cpp:23 msgid "

    No preview available
    at this time

    " msgstr "" "

    Δεν υπάρχει διαθέσιμη προεπισκόπηση
    αυτή τη στιγμή

    " #: semantik.cpp:46 msgid "" "The map is empty, Semantik\n" "cannot create documents from it" msgstr "" "Ο χάρτης είναι κενός. Το Semantik\n" "δεν μπορεί να δημιουργήσει έγγραφα\n" "από αυτόν." #: semantik.cpp:46 msgid "Empty map" msgstr "Κενός χάρτης" #: semantik.cpp:53 msgid "Template folder %1 is not readable" msgstr "Ο φάκελος των προτύπων %1 δεν είναι αναγνώσιμος" #: semantik.cpp:167 msgid "&Reorganize the map" msgstr "&Αναδιοργάνωση του χάρτη" #: semantik.cpp:169 msgid "Ctrl+R" msgstr "" #: semantik.cpp:172 msgid "&Export the map..." msgstr "" #: semantik.cpp:174 msgid "Ctrl+Shift+E" msgstr "" #: semantik.cpp:179 msgid "&Generate..." msgstr "&Δημιουργία" #: semantik.cpp:182 msgid "Ctrl+G" msgstr "" #: semantik.cpp:188 msgid "CustomColor" msgstr "Προσαρμοσμένο χρώμα" #: semantik.cpp:211 msgid "Data" msgstr "Δεδομένα" #: semantik.cpp:235 msgid "Variables" msgstr "Μεταβλητές" #: semantik.cpp:244 msgid "Preview" msgstr "Προεπισκόπηση" #: semantik.cpp:256 msgid "Linear view" msgstr "Γραμμική προβολή" #: semantik.cpp:350 msgid "Welcome to Semantik" msgstr "Καλωσήρθατε στο Semantik" #: semantik.cpp:418 msgid "*.sem|Semantik file (*.sem)" msgstr "*.sem|Semantik file (*.sem)" #: semantik.cpp:480 msgid "*.sem *.kdi *.mm *.vym|All Supported Files (*.sem *.kdi *.mm *.vym)" msgstr "" "*.sem *.kdi *.mm *.vym|Όλα τα υποστηριζόμενα αρχεία (*.sem *.kdi *.mm *.vym)" #: semantik.cpp:497 #, fuzzy msgid "Semantik %1" msgstr "Semantik" #: semantik.cpp:501 #, fuzzy msgid "%1 %2 - Semantik" msgstr "%1 - Semantik" #: table_view.cpp:26 table_view.cpp:80 msgid "Add Row" msgstr "Προσθήκη γραμμής" #: table_view.cpp:27 msgid "Add a row" msgstr "Προσθήκη μιας γραμμής" #: table_view.cpp:31 table_view.cpp:81 msgid "Add Column" msgstr "Προσθήκη στήλης" #: table_view.cpp:32 msgid "Add a column" msgstr "Προσθήκη μιας στήλης" #: table_view.cpp:37 table_view.cpp:82 msgid "Remove Row" msgstr "Διαγραφή γραμμής" #: table_view.cpp:38 msgid "Remove a row" msgstr "Διαγραφή μιας γραμμής" #: table_view.cpp:42 table_view.cpp:83 msgid "Remove Column" msgstr "Διαγραφή στήλης" #: table_view.cpp:43 msgid "Remove a column" msgstr "Διαγραφή μιας στήλης" #: table_view.cpp:47 msgid "Redimension" msgstr "Επαναπροσδιορισμός διαστάσεων" #: table_view.cpp:48 msgid "Change table dimensions" msgstr "Αλλαγή διαστάσεων πίνακα" #: text_view.cpp:41 msgid "&Bold" msgstr "&Έντονα" #: text_view.cpp:42 msgid "Ctrl+B" msgstr "" #: text_view.cpp:45 msgid "&Italic" msgstr "&Πλάγια" #: text_view.cpp:46 msgid "Ctrl+I" msgstr "" #: text_view.cpp:49 msgid "&Underline" msgstr "&Υπογράμμιση" #: text_view.cpp:50 msgid "Ctrl+U" msgstr "" #~ msgid "Data type" #~ msgstr "Είδος δεδομένων" #~ msgid "Ready" #~ msgstr "Έτοιμος" #~ msgid "Insert child" #~ msgstr "Εισαγωγή απογονικού κόμβου" #~ msgid "dirty" #~ msgstr "λερωμένος" #~ msgid "Add Box" #~ msgstr "Προσθήκη πλαισίου" #~ msgid "Connection width" #~ msgstr "Πλάτος σύνδεσης" #~ msgid "1px" #~ msgstr "1px" #~ msgid "2px" #~ msgstr "2px" #~ msgid "3px" #~ msgstr "3px" #~ msgid "Connection style" #~ msgstr "Στυλ σύνδεσης" #~ msgid "dot line" #~ msgstr "γραμμή με τελείες" #~ msgid "exclude the table" #~ msgstr "αποκλεισμός του πίνακα" #~ msgid "fit the item on one slide" #~ msgstr "Προσαρμογή του αντικειμένου στη μια πλευρά" #~ msgid "picture caption" #~ msgstr "λεζάντα εικόνας" #~ msgid "picture dimension in pdf files" #~ msgstr "διαστάσεις εικόνας στα αρχεία pdf" #~ msgid "html div style: style=\"width: 99px;\"" #~ msgstr "html div style: style=\"πλάτος: 99px;\"" #~ msgid "html picture style: style=\"width: 99px;\"" #~ msgstr "html picture style: style=\"πλάτος: 99px;\"" #~ msgid "do not use this item for generating slides" #~ msgstr "μη χρησιμοποιήσετε αυτό το αντικείμενο για δημιουργία διαφανειών" #~ msgid "command to launch (%s is the resulting file)" #~ msgstr "εντολή για φόρτωση (%s είναι το αρχείο που προκύπτει)" #~ msgid "cd `echo %s | sed s/main.tex//` && ./waf configure && waf --view" #~ msgstr "cd `echo %s | sed s/main.tex//` && ./waf configure && waf --view" #~ msgid "firefox %s" #~ msgstr "firefox %s" #~ msgid "ooimpress %s" #~ msgstr "ooimpress %s" #~ msgid "oowriter %s" #~ msgstr "oowriter %s" #~ msgid "document author" #~ msgstr "συγγραφέας εγγράφου" #~ msgid "turn off the document author (latex)" #~ msgstr "απενεργοποίηση του συγγραφέα του εγγράφου (latex)" #~ msgid "document class (latex: a4, report, book)" #~ msgstr "κλάση εγγράφου (latex: a4, report, book)" #~ msgid "company" #~ msgstr "εταιρεία" #~ msgid "document date" #~ msgstr "ημερομηνία εγγράφου" #~ msgid "turn of the document date (latex)" #~ msgstr "απενεργοποίηση ημερομηνίας εγγράφου (latex)" #~ msgid "location of the presentation" #~ msgstr "τοποθεσία της παρουσίασης" #~ msgid "turn off the document title (latex)" #~ msgstr "απενεργοποίηση του τίτλου του εγγράφου (latex)" #~ msgid "footer center (pdflatex)" #~ msgstr "κεντραρισμένο υποσέλιδο (pdflatex)" #~ msgid "footer left (pdflatex)" #~ msgstr "υποσελίδο αριστερά (pdflatex)" #~ msgid "turn off the fancy output" #~ msgstr "απενεργοποίηση του φανταχτερού αποτελέσματος" #~ msgid "footer right" #~ msgstr "υποσέλιδο δεξιά" #~ msgid "header center (pdflatex)" #~ msgstr "κεφαλίδα κεντραρισμένη (pdflatex)" #~ msgid "header left" #~ msgstr "κεφαλίδα αριστερά" #~ msgid "header right" #~ msgstr "κεφαλίδα δεξιά" #~ msgid "openoffice.org language (fr_FR)" #~ msgstr "γλώσσα openoffice.org (fr_FR)" #~ msgid "openoffice.org presentation language" #~ msgstr "γλώσσα παρουσίασης openoffice.org " #~ msgid "openoffice.org text language" #~ msgstr "γλώσσα κειμένου openoffice.org " #~ msgid "Warsaw (JuanLesPins, Montpellier, )" #~ msgstr "Βαρσοβία (JuanLesPins, Montpellier, )" #~ msgid "Generator dialog" #~ msgstr "Διάλογος δημιουργού" #~ msgid "&Ok" #~ msgstr "&Εντάξει" #~ msgid "File %1 does not exist" #~ msgstr "Το αρχείο %1 δεν υπάρχει" #~ msgid "File %1 could not be opened" #~ msgstr "Το αρχείο %1 δεν μπορεί να ανοίξει" #~ msgid "something bad happened" #~ msgstr "συνέβη κάτι άσχημο" #~ msgid "something worse happened" #~ msgstr "συνέβη κάτι χειρότερο" #~ msgid "&Select" #~ msgstr "&Επιλογή" #~ msgid "&Sort" #~ msgstr "&Ταξινόμηση" #~ msgid "exclude the picture" #~ msgstr "αποκλεισμός της εικόνας" #~ msgid "latex language: english (frenchb, )" #~ msgstr "γλώσσα latex: αγγλικά (frenchb, )" semantik-0.9.5/src/po/es.po000664 000000 000000 00000043240 12732552614 015506 0ustar00rootroot000000 000000 msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: https://github.com/ita1024/semantik/issues\n" "POT-Creation-Date: 2015-02-08 16:12+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: base/data_item.cpp:60 canvas_view.cpp:246 canvas_view.cpp:298 #: canvas_view.cpp:310 msgid "Empty" msgstr "Vacio" #: base/flag_scheme.cpp:14 msgid "Flag item(s) as..." msgstr "" #: base/sem_mediator.cpp:282 msgid "Automatic save failed for file: %1" msgstr "" #: base/sem_mediator.cpp:285 msgid "%1 saved automatically" msgstr "" #: base/sem_mediator.cpp:304 msgid "Color %1" msgstr "" #: base/sem_mediator.cpp:617 msgid "File saving: missing file %1" msgstr "" #: base/sem_mediator.cpp:642 base/sem_mediator.cpp:1147 #: base/sem_mediator.cpp:1190 msgid "Missing bindings for opening files" msgstr "" #: base/sem_mediator.cpp:693 msgid "Missing filter file %1 for opening files" msgstr "" #: base/sem_mediator.cpp:693 base/sem_mediator.cpp:708 msgid "Broken installation" msgstr "" #: base/sem_mediator.cpp:708 msgid "Missing python bindings for opening files" msgstr "" #: base/sem_mediator.cpp:724 msgid "Could not load the document %1" msgstr "" #: base/sem_mediator.cpp:724 msgid "Broken document" msgstr "" #: base/sem_mediator.cpp:1113 msgid "Code generation failed: missing file %1" msgstr "" #: base/sem_mediator.cpp:1152 msgid "Document generation completed successfully" msgstr "" #: browser.cpp:21 canvas_view.cpp:143 msgid "Toggle fullscreen" msgstr "" #: canvas_view.cpp:92 msgid "Add an element" msgstr "" #: canvas_view.cpp:97 fig/box_view.cpp:192 msgid "Delete selection" msgstr "" #: canvas_view.cpp:102 msgid "Insert a sibling" msgstr "" #: canvas_view.cpp:107 msgid "Move up" msgstr "" #: canvas_view.cpp:108 msgid "Move down" msgstr "" #: canvas_view.cpp:109 msgid "Move left" msgstr "" #: canvas_view.cpp:110 msgid "Move right" msgstr "" #: canvas_view.cpp:112 msgid "Select up" msgstr "" #: canvas_view.cpp:113 msgid "Select down" msgstr "" #: canvas_view.cpp:114 msgid "Select left" msgstr "" #: canvas_view.cpp:115 msgid "Select right" msgstr "" #: canvas_view.cpp:118 msgid "Select subtree" msgstr "" #: canvas_view.cpp:123 msgid "Next root" msgstr "" #: canvas_view.cpp:126 msgid "Toggle edit" msgstr "" #: canvas_view.cpp:131 msgid "Cancel edit" msgstr "" #: canvas_view.cpp:147 msgid "Colors" msgstr "" #: canvas_view.cpp:158 msgid "Text" msgstr "" #: canvas_view.cpp:159 msgid "Diagram" msgstr "" #: canvas_view.cpp:160 msgid "Table" msgstr "" #: canvas_view.cpp:161 msgid "Image" msgstr "" #: canvas_view.cpp:630 msgid "Color" msgstr "" #: canvas_view.cpp:680 msgid "Flag" msgstr "" #: canvas_view.cpp:1003 msgid "Click to set Item %1" msgstr "" #: canvas_view.cpp:1346 msgid "*.png|PNG Files (*.png)" msgstr "" #: canvas_view.cpp:1384 msgid "No destination file selected" msgstr "" #: canvas_view.cpp:1419 msgid "Exported '%1'" msgstr "" #: canvas_view.cpp:1421 msgid "Could not save to %1" msgstr "" #: canvas_view.cpp:1421 msgid "Missing picture" msgstr "" #: canvas_view.cpp:1713 msgid "Semantik map" msgstr "" #: canvas_view.cpp:1763 fig/box_view.cpp:1922 msgid "Printing cancelled" msgstr "" #: canvas_view.cpp:1774 fig/box_view.cpp:1933 msgid "Printing completed" msgstr "" #: canvas_view.cpp:1778 fig/box_view.cpp:1937 msgid "Problem during printing :-(" msgstr "" #: config_dialog.cpp:29 msgid "Document settings" msgstr "" #: config_dialog.cpp:37 msgid "Reorganization type" msgstr "" #: config_dialog.cpp:41 msgid "Connection type" msgstr "" #: config_dialog.cpp:45 msgid "Save document automatically" msgstr "" #: config_dialog.cpp:49 msgid "Background color" msgstr "" #: config_dialog.cpp:54 msgid "Fixed" msgstr "" #: config_dialog.cpp:54 msgid "Force-based" msgstr "" #: config_dialog.cpp:54 msgid "Incremental" msgstr "" #: config_dialog.cpp:58 msgid "Lines" msgstr "" #: config_dialog.cpp:58 msgid "Splines" msgstr "" #: config_dialog.cpp:62 msgid " min" msgstr "" #: config_dialog.cpp:65 msgid "" "Interval in minutes for saving the document automatically, 0 for disabling " "this feature" msgstr "" #: data_view.cpp:17 msgid "

    No item selected

    " msgstr "" #: doc_dialog.cpp:30 msgid "First Name" msgstr "" #: doc_dialog.cpp:34 generator_dialog.cpp:56 msgid "Name" msgstr "" #: doc_dialog.cpp:38 msgid "Organization" msgstr "" #: doc_dialog.cpp:42 msgid "Email" msgstr "" #: export_map_dialog.cpp:31 msgid "Export the map" msgstr "" #: export_map_dialog.cpp:37 msgid "File to write" msgstr "" #: export_map_dialog.cpp:43 msgid "Width" msgstr "" #: export_map_dialog.cpp:51 msgid "Height" msgstr "" #: fig/box_class_properties.cpp:89 vars_view.cpp:77 msgid "Code complete" msgstr "" #: fig/box_class_properties.cpp:90 vars_view.cpp:78 msgid "Ctrl+space" msgstr "" #: fig/box_class_properties.cpp:246 msgid "Class properties" msgstr "" #: fig/box_class_properties.cpp:283 msgid "No class name given" msgstr "" #: fig/box_class_properties.cpp:283 msgid "Missing class name" msgstr "" #: fig/box_document_properties.cpp:27 msgid "Diagram properties" msgstr "" #: fig/box_document_properties.cpp:37 msgid "Font" msgstr "" #: fig/box_document_properties.cpp:39 msgid "Font for diagram objects" msgstr "" #: fig/box_fork.cpp:334 fig/box_item.cpp:136 msgid "%1 x %2" msgstr "" #: fig/box_item.cpp:192 msgid "Diagram box properties" msgstr "" #: fig/box_item.cpp:193 msgid "Text:" msgstr "" #: fig/box_link_properties.cpp:23 msgid "Link properties" msgstr "" #: fig/box_link_properties.cpp:33 msgid "Thickness" msgstr "" #: fig/box_link_properties.cpp:37 msgid "Line Type" msgstr "" #: fig/box_link_properties.cpp:41 msgid "Line Style" msgstr "" #: fig/box_link_properties.cpp:45 msgid "Origin arrow" msgstr "" #: fig/box_link_properties.cpp:49 msgid "Target arrow" msgstr "" #: fig/box_link_properties.cpp:59 msgid "Zigzag" msgstr "" #: fig/box_link_properties.cpp:60 msgid "Straight" msgstr "" #: fig/box_link_properties.cpp:64 msgid "Invisible line" msgstr "" #: fig/box_link_properties.cpp:65 msgid "Solid Line" msgstr "" #: fig/box_link_properties.cpp:66 msgid "Dash Line" msgstr "" #: fig/box_link_properties.cpp:67 msgid "Dot Line" msgstr "" #: fig/box_link_properties.cpp:71 fig/box_link_properties.cpp:79 msgid "No arrow" msgstr "" #: fig/box_link_properties.cpp:72 fig/box_link_properties.cpp:80 msgid "Triangle" msgstr "" #: fig/box_link_properties.cpp:73 fig/box_link_properties.cpp:81 msgid "Link" msgstr "" #: fig/box_link_properties.cpp:74 fig/box_link_properties.cpp:82 msgid "Inheritance" msgstr "" #: fig/box_link_properties.cpp:75 fig/box_link_properties.cpp:83 msgid "Aggregation" msgstr "" #: fig/box_matrix.cpp:181 msgid "Last row: %2px, last column: %3px (size: %4 x %5)" msgstr "" #: fig/box_matrix.cpp:197 msgid "Row %1: %2px (size: %3 x %4)" msgstr "" #: fig/box_matrix.cpp:213 msgid "Column %1: %2px (size: %3 x %4)" msgstr "" #: fig/box_view.cpp:102 msgid "box_item" msgstr "" #: fig/box_view.cpp:104 msgid "id" msgstr "" #: fig/box_view.cpp:109 fig/box_view.cpp:119 msgid "c1" msgstr "" #: fig/box_view.cpp:110 fig/box_view.cpp:121 msgid "c2" msgstr "" #: fig/box_view.cpp:111 msgid "text" msgstr "" #: fig/box_view.cpp:112 msgid "col" msgstr "" #: fig/box_view.cpp:115 fig/box_view.cpp:151 msgid "box_link" msgstr "" #: fig/box_view.cpp:118 msgid "p1" msgstr "" #: fig/box_view.cpp:120 msgid "p2" msgstr "" #: fig/box_view.cpp:133 msgid "pen_style" msgstr "" #: fig/box_view.cpp:134 msgid "border_width" msgstr "" #: fig/box_view.cpp:138 msgid "box_link_offset" msgstr "" #: fig/box_view.cpp:142 msgid "x" msgstr "" #: fig/box_view.cpp:142 msgid "y" msgstr "" #: fig/box_view.cpp:182 msgid "Properties..." msgstr "" #: fig/box_view.cpp:187 msgid "Activity" msgstr "" #: fig/box_view.cpp:188 msgid "Ctrl+Return" msgstr "" #: fig/box_view.cpp:193 msgid "Delete" msgstr "" #: fig/box_view.cpp:197 msgid "Color..." msgstr "" #: fig/box_view.cpp:202 msgid "Raise" msgstr "" #: fig/box_view.cpp:203 msgid "PgUp" msgstr "" #: fig/box_view.cpp:207 msgid "Send back" msgstr "" #: fig/box_view.cpp:208 msgid "PgDown" msgstr "" #: fig/box_view.cpp:212 msgid "Floating text" msgstr "" #: fig/box_view.cpp:214 msgid "Component" msgstr "" #: fig/box_view.cpp:216 msgid "Node" msgstr "" #: fig/box_view.cpp:218 msgid "Decision" msgstr "" #: fig/box_view.cpp:220 msgid "Database" msgstr "" #: fig/box_view.cpp:222 msgid "Activity start" msgstr "" #: fig/box_view.cpp:224 msgid "Activity end" msgstr "" #: fig/box_view.cpp:226 msgid "Horizontal fork/join" msgstr "" #: fig/box_view.cpp:228 msgid "Vertical fork/join" msgstr "" #: fig/box_view.cpp:230 msgid "Actor" msgstr "" #: fig/box_view.cpp:232 msgid "Usecase" msgstr "" #: fig/box_view.cpp:234 msgid "Matrix" msgstr "" #: fig/box_view.cpp:236 msgid "Boundary" msgstr "" #: fig/box_view.cpp:238 msgid "Class" msgstr "" #: fig/box_view.cpp:241 msgid "Import from file..." msgstr "" #: fig/box_view.cpp:243 msgid "Export to file..." msgstr "" #: fig/box_view.cpp:245 msgid "Copy image to clipboard" msgstr "" #: fig/box_view.cpp:267 msgid "File operations" msgstr "" #: fig/box_view.cpp:279 msgid "More elements" msgstr "" #: fig/box_view.cpp:317 msgid "Alignment" msgstr "" #: fig/box_view.cpp:319 msgid "Align left" msgstr "" #: fig/box_view.cpp:320 msgid "Align center" msgstr "" #: fig/box_view.cpp:321 msgid "Align right" msgstr "" #: fig/box_view.cpp:323 msgid "Align top" msgstr "" #: fig/box_view.cpp:324 msgid "Align middle" msgstr "" #: fig/box_view.cpp:325 msgid "Align bottom" msgstr "" #: fig/box_view.cpp:328 msgid "Size" msgstr "" #: fig/box_view.cpp:330 msgid "Same width" msgstr "" #: fig/box_view.cpp:331 msgid "Same height" msgstr "" #: fig/box_view.cpp:332 msgid "Same width and height" msgstr "" #: fig/box_view.cpp:589 fig/box_view.cpp:1871 msgid "Semantik diagram" msgstr "" #: fig/box_view.cpp:1684 fig/box_view.cpp:1720 fig/semantik_d_win.cpp:280 msgid "*.semd|Semantik diagram (*.semd)" msgstr "" #: fig/box_view.cpp:1685 fig/semantik_d_win.cpp:281 msgid "Choose a file to open" msgstr "" #: fig/box_view.cpp:1721 semantik.cpp:419 semantik.cpp:481 msgid "Choose a file name" msgstr "" #: fig/box_view.cpp:1735 semantik.cpp:432 msgid "" "The file \"%1\" already exists.\n" "Overwrite it?" msgstr "" #: fig/box_view.cpp:1736 semantik.cpp:433 msgid "Overwrite existing file" msgstr "" #: fig/box_view.cpp:1758 fig/box_view.cpp:1776 semantik.cpp:444 #: semantik.cpp:466 msgid "Saved '%1'" msgstr "" #: fig/matrix_dialog.cpp:32 table_dialog.cpp:32 msgid "Rows" msgstr "" #: fig/matrix_dialog.cpp:36 table_dialog.cpp:36 msgid "Columns" msgstr "" #: fig/semantik_d_win.cpp:64 semantik.cpp:202 msgid "Ctrl+H" msgstr "" #: fig/semantik_d_win.cpp:68 msgid "Files" msgstr "" #: fig/semantik_d_win.cpp:80 msgid "This is Semantik-d" msgstr "" #: fig/semantik_d_win.cpp:185 msgid "[Untitled]" msgstr "" #: fig/semantik_d_win.cpp:246 semantik.cpp:548 msgid "Untitled" msgstr "" #: fig/semantik_d_win.cpp:249 semantik.cpp:551 msgid "" "The document \"%1\" has been modified.\n" "Do you want to save your changes or discard them?" msgstr "" #: fig/semantik_d_win.cpp:250 semantik.cpp:552 msgid "Close Document" msgstr "" #: fig/semantik_d_win.cpp:385 semantik.cpp:492 msgid " [Modified] " msgstr "" #: fig/semantik_d_win.cpp:390 msgid "Semantik Diagram %1" msgstr "" #: fig/semantik_d_win.cpp:394 msgid "%1 %2 - Semantik Diagram" msgstr "" #: fig/semd.cpp:26 msgid "A tool for editing and organizing Semantik diagrams" msgstr "" #: fig/semd.cpp:42 main.cpp:34 msgid "A file to open on startup" msgstr "" #: fig/semd.cpp:43 msgid "An output file for exporting the diagram" msgstr "" #: fig/semd.cpp:44 msgid "Diagram width for printing" msgstr "" #: fig/semd.cpp:45 msgid "Diagram height for printing" msgstr "" #: fig/semd.cpp:47 msgid "Semantik-d" msgstr "" #: fig/semd.cpp:47 msgid "(C) 2013-2015 Thomas Nagy" msgstr "" #: fig/semd.cpp:49 main.cpp:40 msgid "Thomas Nagy" msgstr "" #: generator_dialog.cpp:30 msgid "Generate documents" msgstr "" #: generator_dialog.cpp:36 msgid "Generators" msgstr "" #: generator_dialog.cpp:39 msgid "Description" msgstr "" #: generator_dialog.cpp:63 msgid "Location" msgstr "" #: generator_dialog.cpp:114 msgid "No document generator chosen." msgstr "" #: generator_dialog.cpp:114 msgid "Missing data" msgstr "" #: generator_dialog.cpp:120 msgid "Invalid output directory %1" msgstr "" #: generator_dialog.cpp:120 msgid "Missing location" msgstr "" #: image_view.cpp:37 msgid "Change picture" msgstr "" #: image_view.cpp:41 msgid "Clear picture" msgstr "" #: image_view.cpp:66 msgid "Click to set a picture" msgstr "" #: image_view.cpp:70 msgid "Select an item on the map" msgstr "" #: image_view.cpp:166 msgid "*.png *.jpg *.jpeg *.gif|Image Files (*.png *.jpg *.jpeg *.gif)" msgstr "" #: image_view.cpp:167 msgid "Choose a picture" msgstr "" #: image_view.cpp:179 msgid "Could not load the picture" msgstr "" #: main.cpp:24 msgid "" "A mind-mapping tool for KDE\n" "Available exclusively for open systems such as OpenSuse, Gentoo or Fedora." msgstr "" #: main.cpp:35 msgid "An output file for printing the map" msgstr "" #: main.cpp:37 msgid "Semantik" msgstr "" #: main.cpp:38 msgid "(C) 2007-2015 Thomas Nagy" msgstr "" #. i18n: file: data/semantik-dui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantikui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantik-dui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantikui.rc:5 #. i18n: ectx: Menu (file) #: po/rc.cpp:3 po/rc.cpp:21 rc.cpp:3 rc.cpp:21 msgid "&File" msgstr "" #. i18n: file: data/semantik-dui.rc:25 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantikui.rc:8 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantik-dui.rc:25 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantikui.rc:8 #. i18n: ectx: Menu (edit) #: po/rc.cpp:6 po/rc.cpp:24 rc.cpp:6 rc.cpp:24 msgid "&Edit" msgstr "" #. i18n: file: data/semantik-dui.rc:28 #. i18n: ectx: Menu (view) #. i18n: file: data/semantikui.rc:13 #. i18n: ectx: Menu (view) #. i18n: file: data/semantik-dui.rc:28 #. i18n: ectx: Menu (view) #. i18n: file: data/semantikui.rc:13 #. i18n: ectx: Menu (view) #: po/rc.cpp:9 po/rc.cpp:27 rc.cpp:9 rc.cpp:27 msgid "&View" msgstr "" #. i18n: file: data/semantik-dui.rc:33 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantikui.rc:21 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantik-dui.rc:33 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantikui.rc:21 #. i18n: ectx: Menu (tools) #: po/rc.cpp:12 po/rc.cpp:30 rc.cpp:12 rc.cpp:30 msgid "&Tools" msgstr "" #. i18n: file: data/semantik-dui.rc:36 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantikui.rc:24 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantik-dui.rc:36 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantikui.rc:24 #. i18n: ectx: Menu (settings) #: po/rc.cpp:15 po/rc.cpp:33 rc.cpp:15 rc.cpp:33 msgid "&Settings" msgstr "" #. i18n: file: data/semantik-dui.rc:39 #. i18n: ectx: Menu (help) #. i18n: file: data/semantikui.rc:27 #. i18n: ectx: Menu (help) #. i18n: file: data/semantik-dui.rc:39 #. i18n: ectx: Menu (help) #. i18n: file: data/semantikui.rc:27 #. i18n: ectx: Menu (help) #: po/rc.cpp:18 po/rc.cpp:36 rc.cpp:18 rc.cpp:36 msgid "&Help" msgstr "" #. i18n: file: data/semantikui.rc:41 #. i18n: ectx: ToolBar (colorsToolBar) #: po/rc.cpp:39 rc.cpp:39 msgid "Colors Toolbar" msgstr "" #. i18n: file: data/semantikui.rc:45 #. i18n: ectx: ToolBar (flagsToolBar) #: po/rc.cpp:42 rc.cpp:42 msgid "Flags Toolbar" msgstr "" #: po/rc.cpp:43 rc.cpp:43 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: po/rc.cpp:44 rc.cpp:44 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #: pre_view.cpp:23 msgid "

    No preview available
    at this time

    " msgstr "" #: semantik.cpp:46 msgid "" "The map is empty, Semantik\n" "cannot create documents from it" msgstr "" #: semantik.cpp:46 msgid "Empty map" msgstr "" #: semantik.cpp:53 msgid "Template folder %1 is not readable" msgstr "" #: semantik.cpp:167 msgid "&Reorganize the map" msgstr "" #: semantik.cpp:169 msgid "Ctrl+R" msgstr "" #: semantik.cpp:172 msgid "&Export the map..." msgstr "" #: semantik.cpp:174 msgid "Ctrl+Shift+E" msgstr "" #: semantik.cpp:179 msgid "&Generate..." msgstr "" #: semantik.cpp:182 msgid "Ctrl+G" msgstr "" #: semantik.cpp:188 msgid "CustomColor" msgstr "" #: semantik.cpp:211 msgid "Data" msgstr "" #: semantik.cpp:235 msgid "Variables" msgstr "" #: semantik.cpp:244 msgid "Preview" msgstr "" #: semantik.cpp:256 msgid "Linear view" msgstr "" #: semantik.cpp:350 msgid "Welcome to Semantik" msgstr "" #: semantik.cpp:418 msgid "*.sem|Semantik file (*.sem)" msgstr "" #: semantik.cpp:480 msgid "*.sem *.kdi *.mm *.vym|All Supported Files (*.sem *.kdi *.mm *.vym)" msgstr "" #: semantik.cpp:497 msgid "Semantik %1" msgstr "" #: semantik.cpp:501 msgid "%1 %2 - Semantik" msgstr "" #: table_view.cpp:26 table_view.cpp:80 msgid "Add Row" msgstr "" #: table_view.cpp:27 msgid "Add a row" msgstr "" #: table_view.cpp:31 table_view.cpp:81 msgid "Add Column" msgstr "" #: table_view.cpp:32 msgid "Add a column" msgstr "" #: table_view.cpp:37 table_view.cpp:82 msgid "Remove Row" msgstr "" #: table_view.cpp:38 msgid "Remove a row" msgstr "" #: table_view.cpp:42 table_view.cpp:83 msgid "Remove Column" msgstr "" #: table_view.cpp:43 msgid "Remove a column" msgstr "" #: table_view.cpp:47 msgid "Redimension" msgstr "" #: table_view.cpp:48 msgid "Change table dimensions" msgstr "" #: text_view.cpp:41 msgid "&Bold" msgstr "" #: text_view.cpp:42 msgid "Ctrl+B" msgstr "" #: text_view.cpp:45 msgid "&Italic" msgstr "" #: text_view.cpp:46 msgid "Ctrl+I" msgstr "" #: text_view.cpp:49 msgid "&Underline" msgstr "" #: text_view.cpp:50 msgid "Ctrl+U" msgstr "" semantik-0.9.5/src/po/fr.po000664 000000 000000 00000061162 12732552614 015511 0ustar00rootroot000000 000000 msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: https://github.com/ita1024/semantik/issues\n" "POT-Creation-Date: 2015-02-08 16:12+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: base/data_item.cpp:60 canvas_view.cpp:246 canvas_view.cpp:298 #: canvas_view.cpp:310 msgid "Empty" msgstr "Vide" #: base/flag_scheme.cpp:14 msgid "Flag item(s) as..." msgstr "Marquer l'objet comme..." #: base/sem_mediator.cpp:282 msgid "Automatic save failed for file: %1" msgstr "La sauvegarde automatique a échoué pour le fichier: %1" #: base/sem_mediator.cpp:285 msgid "%1 saved automatically" msgstr "%1 sauvegardé automatiquement" #: base/sem_mediator.cpp:304 msgid "Color %1" msgstr "Couleur %1" #: base/sem_mediator.cpp:617 msgid "File saving: missing file %1" msgstr "Sauvegarde de fichier: le fichier %1 est absent" #: base/sem_mediator.cpp:642 base/sem_mediator.cpp:1147 #: base/sem_mediator.cpp:1190 msgid "Missing bindings for opening files" msgstr "Support Python absent: ouverture de fichier impossible" #: base/sem_mediator.cpp:693 msgid "Missing filter file %1 for opening files" msgstr "Le filtre %1 pour l'ouverture de fichiers est manquant" #: base/sem_mediator.cpp:693 base/sem_mediator.cpp:708 msgid "Broken installation" msgstr "Installation d'installation du logiciel" #: base/sem_mediator.cpp:708 msgid "Missing python bindings for opening files" msgstr "Support de Python manquant: ouverture de fichier impossible" #: base/sem_mediator.cpp:724 msgid "Could not load the document %1" msgstr "Impossible d'ouvrir le document %1" #: base/sem_mediator.cpp:724 msgid "Broken document" msgstr "Document illisible" #: base/sem_mediator.cpp:1113 msgid "Code generation failed: missing file %1" msgstr "La génération de code a échoué: le fichier %1 est absent" #: base/sem_mediator.cpp:1152 msgid "Document generation completed successfully" msgstr "Génération de document complète" #: browser.cpp:21 canvas_view.cpp:143 msgid "Toggle fullscreen" msgstr "Basculer en plein écran" #: canvas_view.cpp:92 msgid "Add an element" msgstr "Ajouter un élément" #: canvas_view.cpp:97 fig/box_view.cpp:192 msgid "Delete selection" msgstr "Effacer la sélection" #: canvas_view.cpp:102 msgid "Insert a sibling" msgstr "Insérer un frère" #: canvas_view.cpp:107 msgid "Move up" msgstr "Déplacer vers le haut" #: canvas_view.cpp:108 msgid "Move down" msgstr "Déplacer vers le bas" #: canvas_view.cpp:109 msgid "Move left" msgstr "Déplacer vers la gauche" #: canvas_view.cpp:110 msgid "Move right" msgstr "Déplacer vers la droite" #: canvas_view.cpp:112 msgid "Select up" msgstr "Sélectionner au dessus" #: canvas_view.cpp:113 msgid "Select down" msgstr "Sélectionner en dessous" #: canvas_view.cpp:114 msgid "Select left" msgstr "Sélectionner à gauche" #: canvas_view.cpp:115 msgid "Select right" msgstr "Sélectionner à droite" #: canvas_view.cpp:118 msgid "Select subtree" msgstr "Sélectionner le sous-arbre" #: canvas_view.cpp:123 msgid "Next root" msgstr "Racine suivante" #: canvas_view.cpp:126 msgid "Toggle edit" msgstr "Basculer l'édition" #: canvas_view.cpp:131 msgid "Cancel edit" msgstr "Annuler l'édition" #: canvas_view.cpp:147 msgid "Colors" msgstr "Couleurs" #: canvas_view.cpp:158 msgid "Text" msgstr "Texte" #: canvas_view.cpp:159 msgid "Diagram" msgstr "Diagramme" #: canvas_view.cpp:160 msgid "Table" msgstr "Table" #: canvas_view.cpp:161 msgid "Image" msgstr "Image" #: canvas_view.cpp:630 msgid "Color" msgstr "Couleur" #: canvas_view.cpp:680 msgid "Flag" msgstr "Drapeau" #: canvas_view.cpp:1003 msgid "Click to set Item %1" msgstr "Cliquer pour mettre en place l'item %1" #: canvas_view.cpp:1346 msgid "*.png|PNG Files (*.png)" msgstr "" #: canvas_view.cpp:1384 msgid "No destination file selected" msgstr "Aucun fichier de destination sélectionné" #: canvas_view.cpp:1419 msgid "Exported '%1'" msgstr "'%1' Sauvegardé" #: canvas_view.cpp:1421 msgid "Could not save to %1" msgstr "Impossible de sauver %1" #: canvas_view.cpp:1421 msgid "Missing picture" msgstr "Image manquante" #: canvas_view.cpp:1713 msgid "Semantik map" msgstr "Carte Semantik" #: canvas_view.cpp:1763 fig/box_view.cpp:1922 msgid "Printing cancelled" msgstr "Impression annulée" #: canvas_view.cpp:1774 fig/box_view.cpp:1933 msgid "Printing completed" msgstr "Impression complétée" #: canvas_view.cpp:1778 fig/box_view.cpp:1937 msgid "Problem during printing :-(" msgstr "Problème à l'impression" #: config_dialog.cpp:29 msgid "Document settings" msgstr "Préférences du document" #: config_dialog.cpp:37 msgid "Reorganization type" msgstr "Type de réorganisation" #: config_dialog.cpp:41 msgid "Connection type" msgstr "Type de connexion" #: config_dialog.cpp:45 msgid "Save document automatically" msgstr "Sauvegarder automatiquement" #: config_dialog.cpp:49 msgid "Background color" msgstr "Couleur de fond" #: config_dialog.cpp:54 msgid "Fixed" msgstr "Fixe" #: config_dialog.cpp:54 msgid "Force-based" msgstr "Equilibre de forces" #: config_dialog.cpp:54 msgid "Incremental" msgstr "Incrémental" #: config_dialog.cpp:58 msgid "Lines" msgstr "Lignes" #: config_dialog.cpp:58 msgid "Splines" msgstr "Courbes" #: config_dialog.cpp:62 msgid " min" msgstr " min" #: config_dialog.cpp:65 msgid "" "Interval in minutes for saving the document automatically, 0 for disabling " "this feature" msgstr "" "Intervalle en minutes pour la sauvegarde automatique de documents, 0 pour " "désactiver cette fonctionnalité" #: data_view.cpp:17 msgid "

    No item selected

    " msgstr "

    Aucune sélection

    " #: doc_dialog.cpp:30 msgid "First Name" msgstr "Prénom" #: doc_dialog.cpp:34 generator_dialog.cpp:56 msgid "Name" msgstr "Nom" #: doc_dialog.cpp:38 msgid "Organization" msgstr "Entreprise" #: doc_dialog.cpp:42 msgid "Email" msgstr "Email" #: export_map_dialog.cpp:31 msgid "Export the map" msgstr "Exporter la carte" #: export_map_dialog.cpp:37 msgid "File to write" msgstr "Fichier selectionné" #: export_map_dialog.cpp:43 msgid "Width" msgstr "Largeur" #: export_map_dialog.cpp:51 msgid "Height" msgstr "Hauteur" #: fig/box_class_properties.cpp:89 vars_view.cpp:77 msgid "Code complete" msgstr "" #: fig/box_class_properties.cpp:90 vars_view.cpp:78 msgid "Ctrl+space" msgstr "" #: fig/box_class_properties.cpp:246 msgid "Class properties" msgstr "Propriétés de la classe" #: fig/box_class_properties.cpp:283 msgid "No class name given" msgstr "Aucun nom de classe spécifié" #: fig/box_class_properties.cpp:283 msgid "Missing class name" msgstr "Données manquantes" #: fig/box_document_properties.cpp:27 msgid "Diagram properties" msgstr "Propriétés du diagramme" #: fig/box_document_properties.cpp:37 msgid "Font" msgstr "Fonte" #: fig/box_document_properties.cpp:39 msgid "Font for diagram objects" msgstr "" #: fig/box_fork.cpp:334 fig/box_item.cpp:136 msgid "%1 x %2" msgstr "" #: fig/box_item.cpp:192 msgid "Diagram box properties" msgstr "Propriétés de l'objet" #: fig/box_item.cpp:193 msgid "Text:" msgstr "Texte:" #: fig/box_link_properties.cpp:23 msgid "Link properties" msgstr "Propriétés du lien" #: fig/box_link_properties.cpp:33 msgid "Thickness" msgstr "Épaisseur" #: fig/box_link_properties.cpp:37 msgid "Line Type" msgstr "Représentation linaire" #: fig/box_link_properties.cpp:41 msgid "Line Style" msgstr "Style de ligne" #: fig/box_link_properties.cpp:45 msgid "Origin arrow" msgstr "Flèche à l'origine" #: fig/box_link_properties.cpp:49 msgid "Target arrow" msgstr "Flèche à destination" #: fig/box_link_properties.cpp:59 msgid "Zigzag" msgstr "" #: fig/box_link_properties.cpp:60 msgid "Straight" msgstr "Ligne droite" #: fig/box_link_properties.cpp:64 msgid "Invisible line" msgstr "Ligne invisible" #: fig/box_link_properties.cpp:65 msgid "Solid Line" msgstr "Ligne continue" #: fig/box_link_properties.cpp:66 msgid "Dash Line" msgstr "Ligne brisée" #: fig/box_link_properties.cpp:67 msgid "Dot Line" msgstr "Pointillés" #: fig/box_link_properties.cpp:71 fig/box_link_properties.cpp:79 msgid "No arrow" msgstr "Pas de flèche" #: fig/box_link_properties.cpp:72 fig/box_link_properties.cpp:80 msgid "Triangle" msgstr "Triangle" #: fig/box_link_properties.cpp:73 fig/box_link_properties.cpp:81 msgid "Link" msgstr "Lien" #: fig/box_link_properties.cpp:74 fig/box_link_properties.cpp:82 msgid "Inheritance" msgstr "" #: fig/box_link_properties.cpp:75 fig/box_link_properties.cpp:83 msgid "Aggregation" msgstr "Aggrégation" #: fig/box_matrix.cpp:181 msgid "Last row: %2px, last column: %3px (size: %4 x %5)" msgstr "Dernière ligne: %2px, dernière colonne: %3px (taille: %4 x %5)" #: fig/box_matrix.cpp:197 msgid "Row %1: %2px (size: %3 x %4)" msgstr "Ligne %1: %2px (taille: %3 x %4)" #: fig/box_matrix.cpp:213 msgid "Column %1: %2px (size: %3 x %4)" msgstr "Colonne %1: %2px (taille: %3 x %4)" #: fig/box_view.cpp:102 msgid "box_item" msgstr "" #: fig/box_view.cpp:104 msgid "id" msgstr "" #: fig/box_view.cpp:109 fig/box_view.cpp:119 msgid "c1" msgstr "" #: fig/box_view.cpp:110 fig/box_view.cpp:121 msgid "c2" msgstr "" #: fig/box_view.cpp:111 msgid "text" msgstr "" #: fig/box_view.cpp:112 msgid "col" msgstr "" #: fig/box_view.cpp:115 fig/box_view.cpp:151 msgid "box_link" msgstr "" #: fig/box_view.cpp:118 msgid "p1" msgstr "" #: fig/box_view.cpp:120 msgid "p2" msgstr "" #: fig/box_view.cpp:133 msgid "pen_style" msgstr "" #: fig/box_view.cpp:134 msgid "border_width" msgstr "" #: fig/box_view.cpp:138 msgid "box_link_offset" msgstr "" #: fig/box_view.cpp:142 msgid "x" msgstr "" #: fig/box_view.cpp:142 msgid "y" msgstr "" #: fig/box_view.cpp:182 msgid "Properties..." msgstr "Propriétés..." #: fig/box_view.cpp:187 msgid "Activity" msgstr "Activité" #: fig/box_view.cpp:188 msgid "Ctrl+Return" msgstr "" #: fig/box_view.cpp:193 msgid "Delete" msgstr "Effacer" #: fig/box_view.cpp:197 msgid "Color..." msgstr "Couleur..." #: fig/box_view.cpp:202 msgid "Raise" msgstr "" #: fig/box_view.cpp:203 msgid "PgUp" msgstr "" #: fig/box_view.cpp:207 msgid "Send back" msgstr "" #: fig/box_view.cpp:208 msgid "PgDown" msgstr "" #: fig/box_view.cpp:212 msgid "Floating text" msgstr "" #: fig/box_view.cpp:214 msgid "Component" msgstr "" #: fig/box_view.cpp:216 msgid "Node" msgstr "" #: fig/box_view.cpp:218 #, fuzzy msgid "Decision" msgstr "Redimensionner" #: fig/box_view.cpp:220 #, fuzzy msgid "Database" msgstr "Données" #: fig/box_view.cpp:222 msgid "Activity start" msgstr "" #: fig/box_view.cpp:224 msgid "Activity end" msgstr "" #: fig/box_view.cpp:226 msgid "Horizontal fork/join" msgstr "" #: fig/box_view.cpp:228 msgid "Vertical fork/join" msgstr "" #: fig/box_view.cpp:230 msgid "Actor" msgstr "" #: fig/box_view.cpp:232 msgid "Usecase" msgstr "" #: fig/box_view.cpp:234 msgid "Matrix" msgstr "" #: fig/box_view.cpp:236 msgid "Boundary" msgstr "" #: fig/box_view.cpp:238 msgid "Class" msgstr "" #: fig/box_view.cpp:241 msgid "Import from file..." msgstr "" #: fig/box_view.cpp:243 msgid "Export to file..." msgstr "" #: fig/box_view.cpp:245 msgid "Copy image to clipboard" msgstr "" #: fig/box_view.cpp:267 msgid "File operations" msgstr "" #: fig/box_view.cpp:279 msgid "More elements" msgstr "" #: fig/box_view.cpp:317 msgid "Alignment" msgstr "" #: fig/box_view.cpp:319 msgid "Align left" msgstr "" #: fig/box_view.cpp:320 msgid "Align center" msgstr "" #: fig/box_view.cpp:321 #, fuzzy msgid "Align right" msgstr "Sélectionner à droite" #: fig/box_view.cpp:323 msgid "Align top" msgstr "" #: fig/box_view.cpp:324 msgid "Align middle" msgstr "" #: fig/box_view.cpp:325 msgid "Align bottom" msgstr "" #: fig/box_view.cpp:328 msgid "Size" msgstr "" #: fig/box_view.cpp:330 msgid "Same width" msgstr "" #: fig/box_view.cpp:331 #, fuzzy msgid "Same height" msgstr "Sélectionner à droite" #: fig/box_view.cpp:332 msgid "Same width and height" msgstr "" #: fig/box_view.cpp:589 fig/box_view.cpp:1871 #, fuzzy msgid "Semantik diagram" msgstr "Semantik" #: fig/box_view.cpp:1684 fig/box_view.cpp:1720 fig/semantik_d_win.cpp:280 #, fuzzy msgid "*.semd|Semantik diagram (*.semd)" msgstr "*.sem|Fichier Semantik (*.sem)" #: fig/box_view.cpp:1685 fig/semantik_d_win.cpp:281 #, fuzzy msgid "Choose a file to open" msgstr "Choisir un nom de fichier" #: fig/box_view.cpp:1721 semantik.cpp:419 semantik.cpp:481 msgid "Choose a file name" msgstr "Choisir un nom de fichier" #: fig/box_view.cpp:1735 semantik.cpp:432 msgid "" "The file \"%1\" already exists.\n" "Overwrite it?" msgstr "" #: fig/box_view.cpp:1736 semantik.cpp:433 msgid "Overwrite existing file" msgstr "" #: fig/box_view.cpp:1758 fig/box_view.cpp:1776 semantik.cpp:444 #: semantik.cpp:466 msgid "Saved '%1'" msgstr "'%1' Sauvegardé" #: fig/matrix_dialog.cpp:32 table_dialog.cpp:32 msgid "Rows" msgstr "Lignes" #: fig/matrix_dialog.cpp:36 table_dialog.cpp:36 msgid "Columns" msgstr "Colonnes" #: fig/semantik_d_win.cpp:64 semantik.cpp:202 msgid "Ctrl+H" msgstr "" #: fig/semantik_d_win.cpp:68 msgid "Files" msgstr "" #: fig/semantik_d_win.cpp:80 #, fuzzy msgid "This is Semantik-d" msgstr "Semantik" #: fig/semantik_d_win.cpp:185 msgid "[Untitled]" msgstr "" #: fig/semantik_d_win.cpp:246 semantik.cpp:548 msgid "Untitled" msgstr "" #: fig/semantik_d_win.cpp:249 semantik.cpp:551 msgid "" "The document \"%1\" has been modified.\n" "Do you want to save your changes or discard them?" msgstr "" #: fig/semantik_d_win.cpp:250 semantik.cpp:552 msgid "Close Document" msgstr "" #: fig/semantik_d_win.cpp:385 semantik.cpp:492 msgid " [Modified] " msgstr "" #: fig/semantik_d_win.cpp:390 #, fuzzy msgid "Semantik Diagram %1" msgstr "Semantik" #: fig/semantik_d_win.cpp:394 #, fuzzy msgid "%1 %2 - Semantik Diagram" msgstr "%1 - Semantik" #: fig/semd.cpp:26 msgid "A tool for editing and organizing Semantik diagrams" msgstr "" #: fig/semd.cpp:42 main.cpp:34 msgid "A file to open on startup" msgstr "" #: fig/semd.cpp:43 msgid "An output file for exporting the diagram" msgstr "" #: fig/semd.cpp:44 msgid "Diagram width for printing" msgstr "" #: fig/semd.cpp:45 msgid "Diagram height for printing" msgstr "" #: fig/semd.cpp:47 #, fuzzy msgid "Semantik-d" msgstr "Semantik" #: fig/semd.cpp:47 msgid "(C) 2013-2015 Thomas Nagy" msgstr "" #: fig/semd.cpp:49 main.cpp:40 msgid "Thomas Nagy" msgstr "" #: generator_dialog.cpp:30 #, fuzzy msgid "Generate documents" msgstr "Générateurs" #: generator_dialog.cpp:36 msgid "Generators" msgstr "Générateurs" #: generator_dialog.cpp:39 msgid "Description" msgstr "Description" #: generator_dialog.cpp:63 msgid "Location" msgstr "Lieu" #: generator_dialog.cpp:114 msgid "No document generator chosen." msgstr "Aucun générateur de document sélectionné" #: generator_dialog.cpp:114 msgid "Missing data" msgstr "Données manquantes" #: generator_dialog.cpp:120 msgid "Invalid output directory %1" msgstr "Répertoire de sortie %1 invalide" #: generator_dialog.cpp:120 msgid "Missing location" msgstr "Lieu manquant" #: image_view.cpp:37 msgid "Change picture" msgstr "Changer l'image" #: image_view.cpp:41 msgid "Clear picture" msgstr "Effacer l'image" #: image_view.cpp:66 msgid "Click to set a picture" msgstr "Cliquer pour mettre une image" #: image_view.cpp:70 msgid "Select an item on the map" msgstr "Sélectionner un objet sur la carte" #: image_view.cpp:166 #, fuzzy msgid "*.png *.jpg *.jpeg *.gif|Image Files (*.png *.jpg *.jpeg *.gif)" msgstr "*.png *.jpg *.jpeg *.gif|Images (*.png *.jpg *.jpeg *.gif)" #: image_view.cpp:167 msgid "Choose a picture" msgstr "Choisir une image" #: image_view.cpp:179 msgid "Could not load the picture" msgstr "Impossible de charger l'image" #: main.cpp:24 msgid "" "A mind-mapping tool for KDE\n" "Available exclusively for open systems such as OpenSuse, Gentoo or Fedora." msgstr "" "Carte mentales pour KDE. En exclusivité pour les systèmes libres comme " "OpenSuse, Gentoo ou Fedora" #: main.cpp:35 msgid "An output file for printing the map" msgstr "" #: main.cpp:37 msgid "Semantik" msgstr "Semantik" #: main.cpp:38 msgid "(C) 2007-2015 Thomas Nagy" msgstr "" #. i18n: file: data/semantik-dui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantikui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantik-dui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantikui.rc:5 #. i18n: ectx: Menu (file) #: po/rc.cpp:3 po/rc.cpp:21 rc.cpp:3 rc.cpp:21 msgid "&File" msgstr "" #. i18n: file: data/semantik-dui.rc:25 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantikui.rc:8 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantik-dui.rc:25 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantikui.rc:8 #. i18n: ectx: Menu (edit) #: po/rc.cpp:6 po/rc.cpp:24 rc.cpp:6 rc.cpp:24 msgid "&Edit" msgstr "" #. i18n: file: data/semantik-dui.rc:28 #. i18n: ectx: Menu (view) #. i18n: file: data/semantikui.rc:13 #. i18n: ectx: Menu (view) #. i18n: file: data/semantik-dui.rc:28 #. i18n: ectx: Menu (view) #. i18n: file: data/semantikui.rc:13 #. i18n: ectx: Menu (view) #: po/rc.cpp:9 po/rc.cpp:27 rc.cpp:9 rc.cpp:27 msgid "&View" msgstr "" #. i18n: file: data/semantik-dui.rc:33 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantikui.rc:21 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantik-dui.rc:33 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantikui.rc:21 #. i18n: ectx: Menu (tools) #: po/rc.cpp:12 po/rc.cpp:30 rc.cpp:12 rc.cpp:30 msgid "&Tools" msgstr "" #. i18n: file: data/semantik-dui.rc:36 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantikui.rc:24 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantik-dui.rc:36 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantikui.rc:24 #. i18n: ectx: Menu (settings) #: po/rc.cpp:15 po/rc.cpp:33 rc.cpp:15 rc.cpp:33 msgid "&Settings" msgstr "" #. i18n: file: data/semantik-dui.rc:39 #. i18n: ectx: Menu (help) #. i18n: file: data/semantikui.rc:27 #. i18n: ectx: Menu (help) #. i18n: file: data/semantik-dui.rc:39 #. i18n: ectx: Menu (help) #. i18n: file: data/semantikui.rc:27 #. i18n: ectx: Menu (help) #: po/rc.cpp:18 po/rc.cpp:36 rc.cpp:18 rc.cpp:36 msgid "&Help" msgstr "" #. i18n: file: data/semantikui.rc:41 #. i18n: ectx: ToolBar (colorsToolBar) #: po/rc.cpp:39 rc.cpp:39 msgid "Colors Toolbar" msgstr "Barre de couleurs" #. i18n: file: data/semantikui.rc:45 #. i18n: ectx: ToolBar (flagsToolBar) #: po/rc.cpp:42 rc.cpp:42 msgid "Flags Toolbar" msgstr "" #: po/rc.cpp:43 rc.cpp:43 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: po/rc.cpp:44 rc.cpp:44 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #: pre_view.cpp:23 msgid "

    No preview available
    at this time

    " msgstr "" "

    Aucune prévisualisation
    disponible pour le moment

    " #: semantik.cpp:46 msgid "" "The map is empty, Semantik\n" "cannot create documents from it" msgstr "" "La carte est vide, Semantik\n" "ne peut pas générer de documents" #: semantik.cpp:46 msgid "Empty map" msgstr "Carte vide" #: semantik.cpp:53 msgid "Template folder %1 is not readable" msgstr "Le répertoire des modèles %1 n'est pas disponible" #: semantik.cpp:167 msgid "&Reorganize the map" msgstr "&Réorganiser la carte" #: semantik.cpp:169 msgid "Ctrl+R" msgstr "" #: semantik.cpp:172 msgid "&Export the map..." msgstr "" #: semantik.cpp:174 msgid "Ctrl+Shift+E" msgstr "" #: semantik.cpp:179 msgid "&Generate..." msgstr "&Générer..." #: semantik.cpp:182 msgid "Ctrl+G" msgstr "" #: semantik.cpp:188 msgid "CustomColor" msgstr "" #: semantik.cpp:211 msgid "Data" msgstr "Données" #: semantik.cpp:235 msgid "Variables" msgstr "Variables" #: semantik.cpp:244 msgid "Preview" msgstr "Prévisualisation" #: semantik.cpp:256 msgid "Linear view" msgstr "Représentation linaire" #: semantik.cpp:350 msgid "Welcome to Semantik" msgstr "Bienvenue dans Semantik" #: semantik.cpp:418 msgid "*.sem|Semantik file (*.sem)" msgstr "*.sem|Fichier Semantik (*.sem)" #: semantik.cpp:480 msgid "*.sem *.kdi *.mm *.vym|All Supported Files (*.sem *.kdi *.mm *.vym)" msgstr "" "*.sem *.kdi *.mm *.vym|Tous les fichiers supports (*.sem *.kdi *.mm *.vym)" #: semantik.cpp:497 msgid "Semantik %1" msgstr "Semantik %1" #: semantik.cpp:501 msgid "%1 %2 - Semantik" msgstr "%1 %2 - Semantik" #: table_view.cpp:26 table_view.cpp:80 msgid "Add Row" msgstr "Ajouter une ligne" #: table_view.cpp:27 msgid "Add a row" msgstr "Ajoute une ligne" #: table_view.cpp:31 table_view.cpp:81 msgid "Add Column" msgstr "Ajouter une colonne" #: table_view.cpp:32 msgid "Add a column" msgstr "Ajoute une colonne" #: table_view.cpp:37 table_view.cpp:82 msgid "Remove Row" msgstr "Enlever une ligne" #: table_view.cpp:38 msgid "Remove a row" msgstr "Enlève une ligne" #: table_view.cpp:42 table_view.cpp:83 msgid "Remove Column" msgstr "Enlever une colonne" #: table_view.cpp:43 msgid "Remove a column" msgstr "Enlève une colonne" #: table_view.cpp:47 msgid "Redimension" msgstr "Redimensionner" #: table_view.cpp:48 msgid "Change table dimensions" msgstr "Changer les dimensions de la table" #: text_view.cpp:41 msgid "&Bold" msgstr "" #: text_view.cpp:42 msgid "Ctrl+B" msgstr "" #: text_view.cpp:45 msgid "&Italic" msgstr "" #: text_view.cpp:46 msgid "Ctrl+I" msgstr "" #: text_view.cpp:49 msgid "&Underline" msgstr "" #: text_view.cpp:50 msgid "Ctrl+U" msgstr "" #~ msgid "Data type" #~ msgstr "Type de donnée" #~ msgid "Ready" #~ msgstr "Prêt" #~ msgid "Insert child" #~ msgstr "Insérer une branche" #~ msgid "Add Box" #~ msgstr "Ajouter un élément" #~ msgid "Connection width" #~ msgstr "Largeur de connexion" #~ msgid "1px" #~ msgstr "1px" #~ msgid "2px" #~ msgstr "2px" #~ msgid "3px" #~ msgstr "3px" #~ msgid "Connection style" #~ msgstr "Style de connexion" #~ msgid "dot line" #~ msgstr "pointillés" #~ msgid "exclude the table" #~ msgstr "exclure la table" #~ msgid "picture caption" #~ msgstr "légende pour l'image" #~ msgid "picture dimension in pdf files" #~ msgstr "dimension de l'image dans les fichiers pdf" #~ msgid "html div style: style=\"width: 99px;\"" #~ msgstr "html div style: style=\"width: 99px;\"" #~ msgid "html picture style: style=\"width: 99px;\"" #~ msgstr "html picture style: style=\"width: 99px;\"" #~ msgid "do not use this item for generating slides" #~ msgstr "ne pas utiliser cet objet pour la génération de slides" #~ msgid "command to launch (%s is the resulting file)" #~ msgstr "commande à lancer (%s représente le fichier généré)" #~ msgid "cd `echo %s | sed s/main.tex//` && ./waf configure && waf --view" #~ msgstr "cd `echo %s | sed s/main.tex//` && ./waf configure && waf --view" #~ msgid "firefox %s" #~ msgstr "firefox %s" #~ msgid "ooimpress %s" #~ msgstr "ooimpress %s" #~ msgid "oowriter %s" #~ msgstr "oowriter %s" #~ msgid "document author" #~ msgstr "auteur du document" #~ msgid "turn off the document author (latex)" #~ msgstr "masquer l'auteur du document (latex)" #~ msgid "document class (latex: a4, report, book)" #~ msgstr "classe du document (latex: a4, report, book)" #~ msgid "company" #~ msgstr "entreprise" #~ msgid "document date" #~ msgstr "date du docment" #~ msgid "turn of the document date (latex)" #~ msgstr "masquer la date du document (latex)" #~ msgid "location of the presentation" #~ msgstr "répertoire de la présentation" #~ msgid "turn off the document title (latex)" #~ msgstr "masquer le titre du document" #~ msgid "footer center (pdflatex)" #~ msgstr "pied de page au centre (pdflatex)" #~ msgid "footer left (pdflatex)" #~ msgstr "pied de page gauche (pdflatex)" #~ msgid "turn off the fancy output" #~ msgstr "ne pas utiliser la sortie 'fancy' (latex)" #~ msgid "footer right" #~ msgstr "pied de page à droite" #~ msgid "header center (pdflatex)" #~ msgstr "En-tête central (pdflatex)" #~ msgid "header left" #~ msgstr "En-tête à gauche" #~ msgid "header right" #~ msgstr "En-tête à droite" #~ msgid "openoffice.org language (fr_FR)" #~ msgstr "langage pour openoffice.org (fr_FR)" #~ msgid "openoffice.org presentation language" #~ msgstr "langage pour la prsentation openoffice.org" #~ msgid "openoffice.org text language" #~ msgstr "langage pour le document text openoffice.org" #~ msgid "Generator dialog" #~ msgstr "Dialogue de génération de documents" #~ msgid "File %1 does not exist" #~ msgstr "Le fichier %1 n'existe pas" #~ msgid "File %1 could not be opened" #~ msgstr "Le fichier %1 ne peut être ouvert" #~ msgid "something bad happened" #~ msgstr "une erreur s'est produite" #~ msgid "something worse happened" #~ msgstr "une grave erreur s'est produite" #~ msgid "&Select" #~ msgstr "&Sélectionner" #~ msgid "&Sort" #~ msgstr "&Trier" #~ msgid "exclude the picture" #~ msgstr "exclure l'image" #~ msgid "latex language: english (frenchb, )" #~ msgstr "langage pour latex: english (frenchb, )" #~ msgid "Code generation failed: missing bindings" #~ msgstr "La génération a échoué: le support Python est manquant" semantik-0.9.5/src/po/messages.sh000775 000000 000000 00000003066 12732552614 016707 0ustar00rootroot000000 000000 #!/bin/sh set -e BASEDIR="../" # root of translatable sources PROJECT="semantik" # project name BUGADDR="https://github.com/ita1024/semantik/issues" # MSGID-Bugs WDIR=`pwd` # working dir echo "Preparing rc files" cd ${BASEDIR} # we use simple sorting to make sure the lines do not jump around too much from system to system find . -name '*.rc' -o -name '*.ui' -o -name '*.kcfg' | sort > ${WDIR}/rcfiles.list xargs --arg-file=${WDIR}/rcfiles.list extractrc > ${WDIR}/rc.cpp # additional string for KAboutData echo 'i18nc("NAME OF TRANSLATORS","Your names");' >> ${WDIR}/rc.cpp echo 'i18nc("EMAIL OF TRANSLATORS","Your emails");' >> ${WDIR}/rc.cpp cd ${WDIR} echo "Done preparing rc files" echo "Extracting messages" cd ${BASEDIR} # see above on sorting find . -name '*.cpp' -o -name '*.h' -o -name '*.c' | sort > ${WDIR}/infiles.list echo "rc.cpp" >> ${WDIR}/infiles.list cd ${WDIR} xgettext --from-code=UTF-8 -C -kde -ci18n -ki18n:1 -ki18nc:1c,2 -ki18np:1,2 -ki18ncp:1c,2,3 -ktr2i18n:1 \ -kI18N_NOOP:1 -kI18N_NOOP2:1c,2 -kaliasLocale -kki18n:1 -kki18nc:1c,2 -ktrUtf8 -kki18np:1,2 -kki18ncp:1c,2,3 \ --msgid-bugs-address="${BUGADDR}" \ --files-from=infiles.list -D ${BASEDIR} -D ${WDIR} -o ${PROJECT}.pot || { echo "error while calling xgettext. aborting."; exit 1; } echo "Done extracting messages" echo "Merging translations" catalogs=`find . -name '*.po'` for cat in $catalogs; do echo $cat msgmerge -o $cat.new $cat ${PROJECT}.pot mv $cat.new $cat done echo "Done merging translations" echo "Cleaning up" cd ${WDIR} rm rcfiles.list rm infiles.list rm rc.cpp echo "Done" semantik-0.9.5/src/po/ru.po000664 000000 000000 00000074401 12732552614 015530 0ustar00rootroot000000 000000 # Алексей, 2009. # Алексей Кузнецов Alexey.Kouznetsov gmail.com, 2011. # Alexey D. Kouznetsov Alexey.Kouznetsov gmail.com, 2011. # Alexey Loginov , 2015. # msgid "" msgstr "" "Project-Id-Version: semantik\n" "Report-Msgid-Bugs-To: https://github.com/ita1024/semantik/issues\n" "POT-Creation-Date: 2015-02-08 16:12+0100\n" "PO-Revision-Date: 2015-02-08 01:01+0300\n" "Last-Translator: AlexL \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.6.9\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: base/data_item.cpp:60 canvas_view.cpp:246 canvas_view.cpp:298 #: canvas_view.cpp:310 msgid "Empty" msgstr "Пусто" #: base/flag_scheme.cpp:14 msgid "Flag item(s) as..." msgstr "Пометить элемент(ы) как..." #: base/sem_mediator.cpp:282 msgid "Automatic save failed for file: %1" msgstr "Не удалось сохранить автоматически файл «%1»" #: base/sem_mediator.cpp:285 msgid "%1 saved automatically" msgstr "«%1» автоматически сохранён." #: base/sem_mediator.cpp:304 msgid "Color %1" msgstr "Цвет %1" #: base/sem_mediator.cpp:617 msgid "File saving: missing file %1" msgstr "Сохранение файла: файл «%1» не существует" #: base/sem_mediator.cpp:642 base/sem_mediator.cpp:1147 #: base/sem_mediator.cpp:1190 msgid "Missing bindings for opening files" msgstr "Не могу открыть файл: ошибка поддержки Python" #: base/sem_mediator.cpp:693 msgid "Missing filter file %1 for opening files" msgstr "Не найден файл фильтра «%1» для открытия файлов" #: base/sem_mediator.cpp:693 base/sem_mediator.cpp:708 msgid "Broken installation" msgstr "Битая установка" #: base/sem_mediator.cpp:708 msgid "Missing python bindings for opening files" msgstr "Отсутствует поддержка в python для открытия файлов" #: base/sem_mediator.cpp:724 msgid "Could not load the document %1" msgstr "Не удалось загрузить документ %1" #: base/sem_mediator.cpp:724 msgid "Broken document" msgstr "Битый документ" #: base/sem_mediator.cpp:1113 msgid "Code generation failed: missing file %1" msgstr "Не удалось генерировать код: нет файла «%1»" #: base/sem_mediator.cpp:1152 msgid "Document generation completed successfully" msgstr "Создание документа успешно завершено" #: browser.cpp:21 canvas_view.cpp:143 msgid "Toggle fullscreen" msgstr "Полноэкранный режим" #: canvas_view.cpp:92 msgid "Add an element" msgstr "Добавить элемент" #: canvas_view.cpp:97 fig/box_view.cpp:192 msgid "Delete selection" msgstr "Удалить выбранное" #: canvas_view.cpp:102 msgid "Insert a sibling" msgstr "Вставить равнозначный элемент" #: canvas_view.cpp:107 msgid "Move up" msgstr "Поднять" #: canvas_view.cpp:108 msgid "Move down" msgstr "Опустить" #: canvas_view.cpp:109 msgid "Move left" msgstr "Сдвинуть влево" #: canvas_view.cpp:110 msgid "Move right" msgstr "Сдвинуть вправо" #: canvas_view.cpp:112 msgid "Select up" msgstr "Перейти выше" #: canvas_view.cpp:113 msgid "Select down" msgstr "Перейти ниже" #: canvas_view.cpp:114 msgid "Select left" msgstr "Перейти влево" #: canvas_view.cpp:115 msgid "Select right" msgstr "Перейти вправо" #: canvas_view.cpp:118 msgid "Select subtree" msgstr "Выбрать вложенное дерево" #: canvas_view.cpp:123 msgid "Next root" msgstr "Следующий корень" #: canvas_view.cpp:126 msgid "Toggle edit" msgstr "Правка" #: canvas_view.cpp:131 msgid "Cancel edit" msgstr "Отменить правку" #: canvas_view.cpp:147 msgid "Colors" msgstr "Цвета" #: canvas_view.cpp:158 msgid "Text" msgstr "Текст" #: canvas_view.cpp:159 msgid "Diagram" msgstr "Диаграмма" #: canvas_view.cpp:160 msgid "Table" msgstr "Таблица" #: canvas_view.cpp:161 msgid "Image" msgstr "Картинка" #: canvas_view.cpp:630 msgid "Color" msgstr "Цвет" #: canvas_view.cpp:680 msgid "Flag" msgstr "Флаг" #: canvas_view.cpp:1003 msgid "Click to set Item %1" msgstr "Нажмите, чтобы установить объект %1" #: canvas_view.cpp:1346 msgid "*.png|PNG Files (*.png)" msgstr "*.png|PNG файлы (*.png)" #: canvas_view.cpp:1384 msgid "No destination file selected" msgstr "Не выбран файл назначения" #: canvas_view.cpp:1419 msgid "Exported '%1'" msgstr "'%1' экспортирован" #: canvas_view.cpp:1421 msgid "Could not save to %1" msgstr "Не удалось сохранить %1" #: canvas_view.cpp:1421 msgid "Missing picture" msgstr "Отсутствует картинка" #: canvas_view.cpp:1713 msgid "Semantik map" msgstr "Карта Semantik" #: canvas_view.cpp:1763 fig/box_view.cpp:1922 msgid "Printing cancelled" msgstr "Печать отменена" #: canvas_view.cpp:1774 fig/box_view.cpp:1933 msgid "Printing completed" msgstr "Печать завершена" #: canvas_view.cpp:1778 fig/box_view.cpp:1937 msgid "Problem during printing :-(" msgstr "Проблема при печати :-(" #: config_dialog.cpp:29 msgid "Document settings" msgstr "Настройки документа" #: config_dialog.cpp:37 msgid "Reorganization type" msgstr "Вид группировки" #: config_dialog.cpp:41 msgid "Connection type" msgstr "Вид соединений" #: config_dialog.cpp:45 msgid "Save document automatically" msgstr "Сохранять автоматически" #: config_dialog.cpp:49 msgid "Background color" msgstr "Цвет фона" #: config_dialog.cpp:54 msgid "Fixed" msgstr "Фиксированный" #: config_dialog.cpp:54 msgid "Force-based" msgstr "Принудительно основанный" #: config_dialog.cpp:54 msgid "Incremental" msgstr "Инкрементальный" #: config_dialog.cpp:58 msgid "Lines" msgstr "Отрезки" #: config_dialog.cpp:58 msgid "Splines" msgstr "Кривые" #: config_dialog.cpp:62 msgid " min" msgstr " мин" #: config_dialog.cpp:65 msgid "" "Interval in minutes for saving the document automatically, 0 for disabling " "this feature" msgstr "" "Период автоматического сохранения документа в минутах,\n" "«0» отключает автосохранение." #: data_view.cpp:17 msgid "

    No item selected

    " msgstr "

    Ничего не выбрано

    " #: doc_dialog.cpp:30 msgid "First Name" msgstr "Имя" #: doc_dialog.cpp:34 generator_dialog.cpp:56 msgid "Name" msgstr "Фамилия" #: doc_dialog.cpp:38 msgid "Organization" msgstr "Учреждение" #: doc_dialog.cpp:42 msgid "Email" msgstr "Эл. почта" #: export_map_dialog.cpp:31 msgid "Export the map" msgstr "Экспортировать карту" #: export_map_dialog.cpp:37 msgid "File to write" msgstr "Файл для записи" #: export_map_dialog.cpp:43 msgid "Width" msgstr "Ширина" #: export_map_dialog.cpp:51 msgid "Height" msgstr "Высота" #: fig/box_class_properties.cpp:89 vars_view.cpp:77 msgid "Code complete" msgstr "Код готов" #: fig/box_class_properties.cpp:90 vars_view.cpp:78 msgid "Ctrl+space" msgstr "Ctrl+пробел" #: fig/box_class_properties.cpp:246 msgid "Class properties" msgstr "Свойства класса" #: fig/box_class_properties.cpp:283 msgid "No class name given" msgstr "Классу не дано имя" #: fig/box_class_properties.cpp:283 msgid "Missing class name" msgstr "Отсутствует имя класса" #: fig/box_document_properties.cpp:27 msgid "Diagram properties" msgstr "Свойства диаграммы" #: fig/box_document_properties.cpp:37 msgid "Font" msgstr "Шрифт" #: fig/box_document_properties.cpp:39 msgid "Font for diagram objects" msgstr "Шрифт для объектов диаграммы" #: fig/box_fork.cpp:334 fig/box_item.cpp:136 msgid "%1 x %2" msgstr "%1 x %2" #: fig/box_item.cpp:192 msgid "Diagram box properties" msgstr "Свойства диаграммы бокса" #: fig/box_item.cpp:193 msgid "Text:" msgstr "Текст:" #: fig/box_link_properties.cpp:23 msgid "Link properties" msgstr "Свойства ссылки" #: fig/box_link_properties.cpp:33 msgid "Thickness" msgstr "Толщина" #: fig/box_link_properties.cpp:37 msgid "Line Type" msgstr "Тип линии" #: fig/box_link_properties.cpp:41 msgid "Line Style" msgstr "Стиль линии" #: fig/box_link_properties.cpp:45 msgid "Origin arrow" msgstr "Начальная стрелка" #: fig/box_link_properties.cpp:49 msgid "Target arrow" msgstr "Целевая стрелка" #: fig/box_link_properties.cpp:59 msgid "Zigzag" msgstr "Зигзаг" #: fig/box_link_properties.cpp:60 msgid "Straight" msgstr "Прямая" #: fig/box_link_properties.cpp:64 msgid "Invisible line" msgstr "Невидимая линия" #: fig/box_link_properties.cpp:65 msgid "Solid Line" msgstr "Сплошная линия" #: fig/box_link_properties.cpp:66 msgid "Dash Line" msgstr "Штриховая линия" #: fig/box_link_properties.cpp:67 msgid "Dot Line" msgstr "Точечная линия" #: fig/box_link_properties.cpp:71 fig/box_link_properties.cpp:79 msgid "No arrow" msgstr "Нет стрелки" #: fig/box_link_properties.cpp:72 fig/box_link_properties.cpp:80 msgid "Triangle" msgstr "Треугольник" #: fig/box_link_properties.cpp:73 fig/box_link_properties.cpp:81 msgid "Link" msgstr "Ссылка" #: fig/box_link_properties.cpp:74 fig/box_link_properties.cpp:82 msgid "Inheritance" msgstr "Наследование" #: fig/box_link_properties.cpp:75 fig/box_link_properties.cpp:83 msgid "Aggregation" msgstr "Скопление" #: fig/box_matrix.cpp:181 msgid "Last row: %2px, last column: %3px (size: %4 x %5)" msgstr "Последняя строка: %2px, последний столбец: %3px (размер: %4 x %5)" #: fig/box_matrix.cpp:197 msgid "Row %1: %2px (size: %3 x %4)" msgstr "Строка %1: %2px (размер: %3 x %4)" #: fig/box_matrix.cpp:213 msgid "Column %1: %2px (size: %3 x %4)" msgstr "Столбец %1: %2px (размер: %3 x %4)" #: fig/box_view.cpp:102 msgid "box_item" msgstr "элемент_бокса" #: fig/box_view.cpp:104 msgid "id" msgstr "id" #: fig/box_view.cpp:109 fig/box_view.cpp:119 msgid "c1" msgstr "c1" #: fig/box_view.cpp:110 fig/box_view.cpp:121 msgid "c2" msgstr "c2" #: fig/box_view.cpp:111 msgid "text" msgstr "текст" #: fig/box_view.cpp:112 msgid "col" msgstr "колонка" #: fig/box_view.cpp:115 fig/box_view.cpp:151 msgid "box_link" msgstr "ссылка_бокса" #: fig/box_view.cpp:118 msgid "p1" msgstr "p1" #: fig/box_view.cpp:120 msgid "p2" msgstr "p2" #: fig/box_view.cpp:133 msgid "pen_style" msgstr "стиль_пера" #: fig/box_view.cpp:134 msgid "border_width" msgstr "ширина_границы" #: fig/box_view.cpp:138 msgid "box_link_offset" msgstr "смещение_ссылки_бокса" #: fig/box_view.cpp:142 msgid "x" msgstr "x" #: fig/box_view.cpp:142 msgid "y" msgstr "y" #: fig/box_view.cpp:182 msgid "Properties..." msgstr "Свойства..." #: fig/box_view.cpp:187 msgid "Activity" msgstr "Деятельность" #: fig/box_view.cpp:188 msgid "Ctrl+Return" msgstr "Ctrl+Enter" #: fig/box_view.cpp:193 msgid "Delete" msgstr "Удалить" #: fig/box_view.cpp:197 msgid "Color..." msgstr "Цвет..." #: fig/box_view.cpp:202 msgid "Raise" msgstr "Поднять" #: fig/box_view.cpp:203 msgid "PgUp" msgstr "PgUp" #: fig/box_view.cpp:207 msgid "Send back" msgstr "Отправить назад" #: fig/box_view.cpp:208 msgid "PgDown" msgstr "PgDown" #: fig/box_view.cpp:212 msgid "Floating text" msgstr "Плавающий текст" #: fig/box_view.cpp:214 msgid "Component" msgstr "Компонент" #: fig/box_view.cpp:216 msgid "Node" msgstr "Узел" #: fig/box_view.cpp:218 msgid "Decision" msgstr "Решение" #: fig/box_view.cpp:220 msgid "Database" msgstr "База данных" #: fig/box_view.cpp:222 msgid "Activity start" msgstr "Начало деятельности" #: fig/box_view.cpp:224 msgid "Activity end" msgstr "Конец деятельности" #: fig/box_view.cpp:226 msgid "Horizontal fork/join" msgstr "Горизонтальное разветвление/присоединение" #: fig/box_view.cpp:228 msgid "Vertical fork/join" msgstr "Вертикальное разветвление/присоединение" #: fig/box_view.cpp:230 msgid "Actor" msgstr "Привязка" #: fig/box_view.cpp:232 msgid "Usecase" msgstr "Вариант использования" #: fig/box_view.cpp:234 msgid "Matrix" msgstr "Матрица" #: fig/box_view.cpp:236 msgid "Boundary" msgstr "Граница" #: fig/box_view.cpp:238 msgid "Class" msgstr "Класс" #: fig/box_view.cpp:241 msgid "Import from file..." msgstr "Импортировать из файла..." #: fig/box_view.cpp:243 msgid "Export to file..." msgstr "Экспортировать в файл..." #: fig/box_view.cpp:245 msgid "Copy image to clipboard" msgstr "Копировать изображение в буфер обмена" #: fig/box_view.cpp:267 msgid "File operations" msgstr "Файловые операции" #: fig/box_view.cpp:279 msgid "More elements" msgstr "Ещё элементы" #: fig/box_view.cpp:317 msgid "Alignment" msgstr "Выравнивание" #: fig/box_view.cpp:319 msgid "Align left" msgstr "Выровнять по левому краю" #: fig/box_view.cpp:320 msgid "Align center" msgstr "Выровнять по центру" #: fig/box_view.cpp:321 msgid "Align right" msgstr "Привязка справа" #: fig/box_view.cpp:323 msgid "Align top" msgstr "Выровнять по верху" #: fig/box_view.cpp:324 msgid "Align middle" msgstr "Выровнять по середине" #: fig/box_view.cpp:325 msgid "Align bottom" msgstr "Выровнять по низу" #: fig/box_view.cpp:328 msgid "Size" msgstr "Размер" #: fig/box_view.cpp:330 msgid "Same width" msgstr "Такая же ширина" #: fig/box_view.cpp:331 msgid "Same height" msgstr "Такая же высота" #: fig/box_view.cpp:332 msgid "Same width and height" msgstr "Такая же ширина и высота" #: fig/box_view.cpp:589 fig/box_view.cpp:1871 msgid "Semantik diagram" msgstr "Диаграмма Semantik" #: fig/box_view.cpp:1684 fig/box_view.cpp:1720 fig/semantik_d_win.cpp:280 msgid "*.semd|Semantik diagram (*.semd)" msgstr "*.semd|Диаграмма Semantik (*.semd)" #: fig/box_view.cpp:1685 fig/semantik_d_win.cpp:281 msgid "Choose a file to open" msgstr "Укажите имя файла для открытия" #: fig/box_view.cpp:1721 semantik.cpp:419 semantik.cpp:481 msgid "Choose a file name" msgstr "Укажите имя файла" #: fig/box_view.cpp:1735 semantik.cpp:432 msgid "" "The file \"%1\" already exists.\n" "Overwrite it?" msgstr "" "Файл \"%1\" уже существует.\n" "Переписать его?" #: fig/box_view.cpp:1736 semantik.cpp:433 msgid "Overwrite existing file" msgstr "Переписать существующий файл" #: fig/box_view.cpp:1758 fig/box_view.cpp:1776 semantik.cpp:444 #: semantik.cpp:466 msgid "Saved '%1'" msgstr "«%1» сохранён" #: fig/matrix_dialog.cpp:32 table_dialog.cpp:32 msgid "Rows" msgstr "Строки" #: fig/matrix_dialog.cpp:36 table_dialog.cpp:36 msgid "Columns" msgstr "Столбцы" #: fig/semantik_d_win.cpp:64 semantik.cpp:202 msgid "Ctrl+H" msgstr "Ctrl+H" #: fig/semantik_d_win.cpp:68 msgid "Files" msgstr "Файлы" #: fig/semantik_d_win.cpp:80 msgid "This is Semantik-d" msgstr "Это Semantik-d" #: fig/semantik_d_win.cpp:185 msgid "[Untitled]" msgstr "[Неназванный]" #: fig/semantik_d_win.cpp:246 semantik.cpp:548 msgid "Untitled" msgstr "Неназванный" #: fig/semantik_d_win.cpp:249 semantik.cpp:551 msgid "" "The document \"%1\" has been modified.\n" "Do you want to save your changes or discard them?" msgstr "" "Документ «%1» изменён. \n" "Сохранить изменения или отклонить их?" #: fig/semantik_d_win.cpp:250 semantik.cpp:552 msgid "Close Document" msgstr "Закрыть документ" #: fig/semantik_d_win.cpp:385 semantik.cpp:492 msgid " [Modified] " msgstr " [Изменён] " #: fig/semantik_d_win.cpp:390 msgid "Semantik Diagram %1" msgstr "Диаграмма Semantik %1" #: fig/semantik_d_win.cpp:394 msgid "%1 %2 - Semantik Diagram" msgstr "%1 %2 - Диаграмма Semantik" #: fig/semd.cpp:26 msgid "A tool for editing and organizing Semantik diagrams" msgstr "Утилита для редактирования и организации диаграмм Semantik" #: fig/semd.cpp:42 main.cpp:34 msgid "A file to open on startup" msgstr "Файл для открытия при старте" #: fig/semd.cpp:43 msgid "An output file for exporting the diagram" msgstr "Выходной файл для экспортирования диаграммы" #: fig/semd.cpp:44 msgid "Diagram width for printing" msgstr "Ширина диаграммы для печати" #: fig/semd.cpp:45 msgid "Diagram height for printing" msgstr "Высота диаграммы для печати" #: fig/semd.cpp:47 msgid "Semantik-d" msgstr "Semantik-d" #: fig/semd.cpp:47 msgid "(C) 2013-2015 Thomas Nagy" msgstr "(C) 2013-2015 Thomas Nagy" #: fig/semd.cpp:49 main.cpp:40 msgid "Thomas Nagy" msgstr "Thomas Nagy" #: generator_dialog.cpp:30 msgid "Generate documents" msgstr "Генерировать документы" #: generator_dialog.cpp:36 msgid "Generators" msgstr "Генераторы" #: generator_dialog.cpp:39 msgid "Description" msgstr "Описание" #: generator_dialog.cpp:63 msgid "Location" msgstr "Расположение" #: generator_dialog.cpp:114 msgid "No document generator chosen." msgstr "Не выбран генератор документа." #: generator_dialog.cpp:114 msgid "Missing data" msgstr "Нет данных" #: generator_dialog.cpp:120 msgid "Invalid output directory %1" msgstr "Неверный целевой каталог «%1»" #: generator_dialog.cpp:120 msgid "Missing location" msgstr "Не указано расположение" #: image_view.cpp:37 msgid "Change picture" msgstr "Изменить картинку" #: image_view.cpp:41 msgid "Clear picture" msgstr "Убрать картинку" #: image_view.cpp:66 msgid "Click to set a picture" msgstr "Нажмите, чтобы задать картинку" #: image_view.cpp:70 msgid "Select an item on the map" msgstr "Выбрать объект на плане" #: image_view.cpp:166 msgid "*.png *.jpg *.jpeg *.gif|Image Files (*.png *.jpg *.jpeg *.gif)" msgstr "*.png *.jpg *.jpeg *.gif|Файлы изображений (*.png *.jpg *.jpeg *.gif)" #: image_view.cpp:167 msgid "Choose a picture" msgstr "Выберите картинку" #: image_view.cpp:179 msgid "Could not load the picture" msgstr "Не удалось загрузить картинку" #: main.cpp:24 msgid "" "A mind-mapping tool for KDE\n" "Available exclusively for open systems such as OpenSuse, Gentoo or Fedora." msgstr "" "Программа для создания диаграмм связей для KDE\n" "Доступна эксклюзивно для открытых систем, таких как OpenSuse, Gentoo или " "Fedora." #: main.cpp:35 msgid "An output file for printing the map" msgstr "Выходной файл для печати карты" #: main.cpp:37 msgid "Semantik" msgstr "Semantik" #: main.cpp:38 msgid "(C) 2007-2015 Thomas Nagy" msgstr "(C) 2007-2015 Thomas Nagy" #. i18n: file: data/semantik-dui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantikui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantik-dui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantikui.rc:5 #. i18n: ectx: Menu (file) #: po/rc.cpp:3 po/rc.cpp:21 rc.cpp:3 rc.cpp:21 msgid "&File" msgstr "&Файл" #. i18n: file: data/semantik-dui.rc:25 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantikui.rc:8 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantik-dui.rc:25 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantikui.rc:8 #. i18n: ectx: Menu (edit) #: po/rc.cpp:6 po/rc.cpp:24 rc.cpp:6 rc.cpp:24 msgid "&Edit" msgstr "&Правка" #. i18n: file: data/semantik-dui.rc:28 #. i18n: ectx: Menu (view) #. i18n: file: data/semantikui.rc:13 #. i18n: ectx: Menu (view) #. i18n: file: data/semantik-dui.rc:28 #. i18n: ectx: Menu (view) #. i18n: file: data/semantikui.rc:13 #. i18n: ectx: Menu (view) #: po/rc.cpp:9 po/rc.cpp:27 rc.cpp:9 rc.cpp:27 msgid "&View" msgstr "&Вид" #. i18n: file: data/semantik-dui.rc:33 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantikui.rc:21 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantik-dui.rc:33 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantikui.rc:21 #. i18n: ectx: Menu (tools) #: po/rc.cpp:12 po/rc.cpp:30 rc.cpp:12 rc.cpp:30 msgid "&Tools" msgstr "&Инструменты" #. i18n: file: data/semantik-dui.rc:36 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantikui.rc:24 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantik-dui.rc:36 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantikui.rc:24 #. i18n: ectx: Menu (settings) #: po/rc.cpp:15 po/rc.cpp:33 rc.cpp:15 rc.cpp:33 msgid "&Settings" msgstr "&Настройки" #. i18n: file: data/semantik-dui.rc:39 #. i18n: ectx: Menu (help) #. i18n: file: data/semantikui.rc:27 #. i18n: ectx: Menu (help) #. i18n: file: data/semantik-dui.rc:39 #. i18n: ectx: Menu (help) #. i18n: file: data/semantikui.rc:27 #. i18n: ectx: Menu (help) #: po/rc.cpp:18 po/rc.cpp:36 rc.cpp:18 rc.cpp:36 msgid "&Help" msgstr "&Помощь" #. i18n: file: data/semantikui.rc:41 #. i18n: ectx: ToolBar (colorsToolBar) #: po/rc.cpp:39 rc.cpp:39 msgid "Colors Toolbar" msgstr "Панель инструментов \"Цвета\"" #. i18n: file: data/semantikui.rc:45 #. i18n: ectx: ToolBar (flagsToolBar) #: po/rc.cpp:42 rc.cpp:42 msgid "Flags Toolbar" msgstr "Панель инструментов \"Флаги\"" #: po/rc.cpp:43 rc.cpp:43 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Кузнецов Алексей, Логинов Алексей" #: po/rc.cpp:44 rc.cpp:44 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "Alexey.Kouznetsov@gmail.com, loginov.alex.valer@gmail.com" #: pre_view.cpp:23 msgid "

    No preview available
    at this time

    " msgstr "

    В настоящее время
    предпросмотр недоступен

    " #: semantik.cpp:46 msgid "" "The map is empty, Semantik\n" "cannot create documents from it" msgstr "" "План пуст;\n" "Semantik не может создать документ." #: semantik.cpp:46 msgid "Empty map" msgstr "Пустой план" #: semantik.cpp:53 msgid "Template folder %1 is not readable" msgstr "Каталог с шаблонами («%1») недоступен для чтения" #: semantik.cpp:167 msgid "&Reorganize the map" msgstr "&Перегруппировать" #: semantik.cpp:169 msgid "Ctrl+R" msgstr "Ctrl+R" #: semantik.cpp:172 msgid "&Export the map..." msgstr "&Экспортировать карту..." #: semantik.cpp:174 msgid "Ctrl+Shift+E" msgstr "Ctrl+Shift+E" #: semantik.cpp:179 msgid "&Generate..." msgstr "&Создать..." #: semantik.cpp:182 msgid "Ctrl+G" msgstr "Ctrl+G" #: semantik.cpp:188 msgid "CustomColor" msgstr "Другой цвет" #: semantik.cpp:211 msgid "Data" msgstr "Данные" #: semantik.cpp:235 msgid "Variables" msgstr "Переменные" #: semantik.cpp:244 msgid "Preview" msgstr "Предпросмотр" #: semantik.cpp:256 msgid "Linear view" msgstr "Структура" #: semantik.cpp:350 msgid "Welcome to Semantik" msgstr "Добро пожаловать в Semantik" #: semantik.cpp:418 msgid "*.sem|Semantik file (*.sem)" msgstr "*.sem|Файлы Semantik (*.sem)" #: semantik.cpp:480 msgid "*.sem *.kdi *.mm *.vym|All Supported Files (*.sem *.kdi *.mm *.vym)" msgstr "" "*.sem *.kdi *.mm *.vym|Файлы поддерживаемых форматов (*.sem *.kdi *.mm *.vym)" #: semantik.cpp:497 msgid "Semantik %1" msgstr "Semantik %1" #: semantik.cpp:501 msgid "%1 %2 - Semantik" msgstr "%1 %2 - Semantik" #: table_view.cpp:26 table_view.cpp:80 msgid "Add Row" msgstr "Добавить строку" #: table_view.cpp:27 msgid "Add a row" msgstr "Вставлена строка" #: table_view.cpp:31 table_view.cpp:81 msgid "Add Column" msgstr "Добавить столбец" #: table_view.cpp:32 msgid "Add a column" msgstr "Вставлен столбец" #: table_view.cpp:37 table_view.cpp:82 msgid "Remove Row" msgstr "Удалить строку" #: table_view.cpp:38 msgid "Remove a row" msgstr "Строка удалена" #: table_view.cpp:42 table_view.cpp:83 msgid "Remove Column" msgstr "Удалить столбец" #: table_view.cpp:43 msgid "Remove a column" msgstr "Столбец удалён" #: table_view.cpp:47 msgid "Redimension" msgstr "Указать размер таблицы" #: table_view.cpp:48 msgid "Change table dimensions" msgstr "Изменение размеров таблицы" #: text_view.cpp:41 msgid "&Bold" msgstr "Полу&жирный" #: text_view.cpp:42 msgid "Ctrl+B" msgstr "Ctrl+B" #: text_view.cpp:45 msgid "&Italic" msgstr "&Курсив" #: text_view.cpp:46 msgid "Ctrl+I" msgstr "Ctrl+I" #: text_view.cpp:49 msgid "&Underline" msgstr "&Подчёркнутый" #: text_view.cpp:50 msgid "Ctrl+U" msgstr "Ctrl+U" #~ msgid "Properties for diagram box" #~ msgstr "Свойства для диаграммы бокса" #~ msgid "(C) 2013 Thomas Nagy" #~ msgstr "(C) 2013 Thomas Nagy" #~ msgid "Data type" #~ msgstr "Тип данных" #~ msgid "Ready" #~ msgstr "Готово" #~ msgid "Insert child" #~ msgstr "Вставить потомка" #~ msgid "dirty" #~ msgstr "черновик" #~ msgid "Add Box" #~ msgstr "Добавить бокс" #~ msgid "Connection width" #~ msgstr "Толщина соед. линии" #~ msgid "1px" #~ msgstr "1 п." #~ msgid "2px" #~ msgstr "2 п." #~ msgid "3px" #~ msgstr "3 п." #~ msgid "Connection style" #~ msgstr "Тип соединений" #~ msgid "dot line" #~ msgstr "точечная линия" #~ msgid "exclude the table" #~ msgstr "исключить таблицу" #~ msgid "fit the item on one slide" #~ msgstr "Закрепить элементы на одном слайде" #~ msgid "picture caption" #~ msgstr "Захват картинки" #~ msgid "picture dimension in pdf files" #~ msgstr "Размеры картинки в файлах PDF" #~ msgid "html div style: style=\"width: 99px;\"" #~ msgstr "html div style: style=\"width: 99px;\"" #~ msgid "html picture style: style=\"width: 99px;\"" #~ msgstr "html picture style: style=\"width: 99px;\"" #~ msgid "do not use this item for generating slides" #~ msgstr "Не использовать этот элемент при создании слайда" #~ msgid "command to launch (%s is the resulting file)" #~ msgstr "Выполняемая команда («%s» - имя целевого файла)" #~ msgid "cd `echo %s | sed s/main.tex//` && ./waf configure && waf --view" #~ msgstr "cd `echo %s | sed s/main.tex//` && ./waf configure && waf --view" #~ msgid "firefox %s" #~ msgstr "firefox %s" #~ msgid "ooimpress %s" #~ msgstr "ooimpress %s" #~ msgid "oowriter %s" #~ msgstr "oowriter %s" #~ msgid "document author" #~ msgstr "Автор документа" #~ msgid "turn off the document author (latex)" #~ msgstr "Скрыть автора документа (LaTeX)" #~ msgid "document class (latex: a4, report, book)" #~ msgstr "Класс документа (latex: a4, report, book)" #~ msgid "company" #~ msgstr "Учреждение" #~ msgid "document date" #~ msgstr "Дата документа" #~ msgid "turn of the document date (latex)" #~ msgstr "Скрыть дату (LaTeX)" #~ msgid "location of the presentation" #~ msgstr "Расположение презентации" #~ msgid "turn off the document title (latex)" #~ msgstr "Скрыть заголовок (LaTeX)" #~ msgid "footer center (pdflatex)" #~ msgstr "Нижний колонтитул, по центру (pdflatex)" #~ msgid "footer left (pdflatex)" #~ msgstr "Нижний колонтитул, слева (pdflatex)" #~ msgid "turn off the fancy output" #~ msgstr "не использовать \"украшенный\" вывод" #~ msgid "footer right" #~ msgstr "Нижний колонтитул, справа" #~ msgid "header center (pdflatex)" #~ msgstr "Верхний колонтитул, по центру (pdflatex)" #~ msgid "header left" #~ msgstr "Верхний колонтитул, слева" #~ msgid "header right" #~ msgstr "Верхний колонтитул, справа" #~ msgid "openoffice.org language (fr_FR)" #~ msgstr "язык для openoffice.org (ru_RU)" #~ msgid "openoffice.org presentation language" #~ msgstr "Язык для презентации openoffice.org" #~ msgid "openoffice.org text language" #~ msgstr "Язык для текстового документа openoffice.org" #~ msgid "Generator dialog" #~ msgstr "Диалог создания документа" #~ msgid "&Ok" #~ msgstr "&ОК" #~ msgid "File %1 does not exist" #~ msgstr "Файл «%1» не существует" #~ msgid "File %1 could not be opened" #~ msgstr "Файл «%1» не может быть открыт" #~ msgid "something bad happened" #~ msgstr "случилось нечто плохое" #~ msgid "something worse happened" #~ msgstr "случилось нечто страшное" #~ msgid "&Select" #~ msgstr "&Выбрать" #~ msgid "&Sort" #~ msgstr "&Упорядочить" #~ msgid "exclude the picture" #~ msgstr "исключить изображение" #~ msgid "latex language: english (frenchb, )" #~ msgstr "язык latex: английский (frenchb, )" #~ msgid "Code generation failed: missing bindings" #~ msgstr "Ошибка генерации кода: отсутствуют поддержка" semantik-0.9.5/src/po/semantik.pot000664 000000 000000 00000043546 12732552614 017107 0ustar00rootroot000000 000000 # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: https://github.com/ita1024/semantik/issues\n" "POT-Creation-Date: 2015-02-08 16:12+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: base/data_item.cpp:60 canvas_view.cpp:246 canvas_view.cpp:298 #: canvas_view.cpp:310 msgid "Empty" msgstr "" #: base/flag_scheme.cpp:14 msgid "Flag item(s) as..." msgstr "" #: base/sem_mediator.cpp:282 msgid "Automatic save failed for file: %1" msgstr "" #: base/sem_mediator.cpp:285 msgid "%1 saved automatically" msgstr "" #: base/sem_mediator.cpp:304 msgid "Color %1" msgstr "" #: base/sem_mediator.cpp:617 msgid "File saving: missing file %1" msgstr "" #: base/sem_mediator.cpp:642 base/sem_mediator.cpp:1147 #: base/sem_mediator.cpp:1190 msgid "Missing bindings for opening files" msgstr "" #: base/sem_mediator.cpp:693 msgid "Missing filter file %1 for opening files" msgstr "" #: base/sem_mediator.cpp:693 base/sem_mediator.cpp:708 msgid "Broken installation" msgstr "" #: base/sem_mediator.cpp:708 msgid "Missing python bindings for opening files" msgstr "" #: base/sem_mediator.cpp:724 msgid "Could not load the document %1" msgstr "" #: base/sem_mediator.cpp:724 msgid "Broken document" msgstr "" #: base/sem_mediator.cpp:1113 msgid "Code generation failed: missing file %1" msgstr "" #: base/sem_mediator.cpp:1152 msgid "Document generation completed successfully" msgstr "" #: browser.cpp:21 canvas_view.cpp:143 msgid "Toggle fullscreen" msgstr "" #: canvas_view.cpp:92 msgid "Add an element" msgstr "" #: canvas_view.cpp:97 fig/box_view.cpp:192 msgid "Delete selection" msgstr "" #: canvas_view.cpp:102 msgid "Insert a sibling" msgstr "" #: canvas_view.cpp:107 msgid "Move up" msgstr "" #: canvas_view.cpp:108 msgid "Move down" msgstr "" #: canvas_view.cpp:109 msgid "Move left" msgstr "" #: canvas_view.cpp:110 msgid "Move right" msgstr "" #: canvas_view.cpp:112 msgid "Select up" msgstr "" #: canvas_view.cpp:113 msgid "Select down" msgstr "" #: canvas_view.cpp:114 msgid "Select left" msgstr "" #: canvas_view.cpp:115 msgid "Select right" msgstr "" #: canvas_view.cpp:118 msgid "Select subtree" msgstr "" #: canvas_view.cpp:123 msgid "Next root" msgstr "" #: canvas_view.cpp:126 msgid "Toggle edit" msgstr "" #: canvas_view.cpp:131 msgid "Cancel edit" msgstr "" #: canvas_view.cpp:147 msgid "Colors" msgstr "" #: canvas_view.cpp:158 msgid "Text" msgstr "" #: canvas_view.cpp:159 msgid "Diagram" msgstr "" #: canvas_view.cpp:160 msgid "Table" msgstr "" #: canvas_view.cpp:161 msgid "Image" msgstr "" #: canvas_view.cpp:630 msgid "Color" msgstr "" #: canvas_view.cpp:680 msgid "Flag" msgstr "" #: canvas_view.cpp:1003 msgid "Click to set Item %1" msgstr "" #: canvas_view.cpp:1346 msgid "*.png|PNG Files (*.png)" msgstr "" #: canvas_view.cpp:1384 msgid "No destination file selected" msgstr "" #: canvas_view.cpp:1419 msgid "Exported '%1'" msgstr "" #: canvas_view.cpp:1421 msgid "Could not save to %1" msgstr "" #: canvas_view.cpp:1421 msgid "Missing picture" msgstr "" #: canvas_view.cpp:1713 msgid "Semantik map" msgstr "" #: canvas_view.cpp:1763 fig/box_view.cpp:1922 msgid "Printing cancelled" msgstr "" #: canvas_view.cpp:1774 fig/box_view.cpp:1933 msgid "Printing completed" msgstr "" #: canvas_view.cpp:1778 fig/box_view.cpp:1937 msgid "Problem during printing :-(" msgstr "" #: config_dialog.cpp:29 msgid "Document settings" msgstr "" #: config_dialog.cpp:37 msgid "Reorganization type" msgstr "" #: config_dialog.cpp:41 msgid "Connection type" msgstr "" #: config_dialog.cpp:45 msgid "Save document automatically" msgstr "" #: config_dialog.cpp:49 msgid "Background color" msgstr "" #: config_dialog.cpp:54 msgid "Fixed" msgstr "" #: config_dialog.cpp:54 msgid "Force-based" msgstr "" #: config_dialog.cpp:54 msgid "Incremental" msgstr "" #: config_dialog.cpp:58 msgid "Lines" msgstr "" #: config_dialog.cpp:58 msgid "Splines" msgstr "" #: config_dialog.cpp:62 msgid " min" msgstr "" #: config_dialog.cpp:65 msgid "" "Interval in minutes for saving the document automatically, 0 for disabling " "this feature" msgstr "" #: data_view.cpp:17 msgid "

    No item selected

    " msgstr "" #: doc_dialog.cpp:30 msgid "First Name" msgstr "" #: doc_dialog.cpp:34 generator_dialog.cpp:56 msgid "Name" msgstr "" #: doc_dialog.cpp:38 msgid "Organization" msgstr "" #: doc_dialog.cpp:42 msgid "Email" msgstr "" #: export_map_dialog.cpp:31 msgid "Export the map" msgstr "" #: export_map_dialog.cpp:37 msgid "File to write" msgstr "" #: export_map_dialog.cpp:43 msgid "Width" msgstr "" #: export_map_dialog.cpp:51 msgid "Height" msgstr "" #: fig/box_class_properties.cpp:89 vars_view.cpp:77 msgid "Code complete" msgstr "" #: fig/box_class_properties.cpp:90 vars_view.cpp:78 msgid "Ctrl+space" msgstr "" #: fig/box_class_properties.cpp:246 msgid "Class properties" msgstr "" #: fig/box_class_properties.cpp:283 msgid "No class name given" msgstr "" #: fig/box_class_properties.cpp:283 msgid "Missing class name" msgstr "" #: fig/box_document_properties.cpp:27 msgid "Diagram properties" msgstr "" #: fig/box_document_properties.cpp:37 msgid "Font" msgstr "" #: fig/box_document_properties.cpp:39 msgid "Font for diagram objects" msgstr "" #: fig/box_fork.cpp:334 fig/box_item.cpp:136 msgid "%1 x %2" msgstr "" #: fig/box_item.cpp:192 msgid "Diagram box properties" msgstr "" #: fig/box_item.cpp:193 msgid "Text:" msgstr "" #: fig/box_link_properties.cpp:23 msgid "Link properties" msgstr "" #: fig/box_link_properties.cpp:33 msgid "Thickness" msgstr "" #: fig/box_link_properties.cpp:37 msgid "Line Type" msgstr "" #: fig/box_link_properties.cpp:41 msgid "Line Style" msgstr "" #: fig/box_link_properties.cpp:45 msgid "Origin arrow" msgstr "" #: fig/box_link_properties.cpp:49 msgid "Target arrow" msgstr "" #: fig/box_link_properties.cpp:59 msgid "Zigzag" msgstr "" #: fig/box_link_properties.cpp:60 msgid "Straight" msgstr "" #: fig/box_link_properties.cpp:64 msgid "Invisible line" msgstr "" #: fig/box_link_properties.cpp:65 msgid "Solid Line" msgstr "" #: fig/box_link_properties.cpp:66 msgid "Dash Line" msgstr "" #: fig/box_link_properties.cpp:67 msgid "Dot Line" msgstr "" #: fig/box_link_properties.cpp:71 fig/box_link_properties.cpp:79 msgid "No arrow" msgstr "" #: fig/box_link_properties.cpp:72 fig/box_link_properties.cpp:80 msgid "Triangle" msgstr "" #: fig/box_link_properties.cpp:73 fig/box_link_properties.cpp:81 msgid "Link" msgstr "" #: fig/box_link_properties.cpp:74 fig/box_link_properties.cpp:82 msgid "Inheritance" msgstr "" #: fig/box_link_properties.cpp:75 fig/box_link_properties.cpp:83 msgid "Aggregation" msgstr "" #: fig/box_matrix.cpp:181 msgid "Last row: %2px, last column: %3px (size: %4 x %5)" msgstr "" #: fig/box_matrix.cpp:197 msgid "Row %1: %2px (size: %3 x %4)" msgstr "" #: fig/box_matrix.cpp:213 msgid "Column %1: %2px (size: %3 x %4)" msgstr "" #: fig/box_view.cpp:102 msgid "box_item" msgstr "" #: fig/box_view.cpp:104 msgid "id" msgstr "" #: fig/box_view.cpp:109 fig/box_view.cpp:119 msgid "c1" msgstr "" #: fig/box_view.cpp:110 fig/box_view.cpp:121 msgid "c2" msgstr "" #: fig/box_view.cpp:111 msgid "text" msgstr "" #: fig/box_view.cpp:112 msgid "col" msgstr "" #: fig/box_view.cpp:115 fig/box_view.cpp:151 msgid "box_link" msgstr "" #: fig/box_view.cpp:118 msgid "p1" msgstr "" #: fig/box_view.cpp:120 msgid "p2" msgstr "" #: fig/box_view.cpp:133 msgid "pen_style" msgstr "" #: fig/box_view.cpp:134 msgid "border_width" msgstr "" #: fig/box_view.cpp:138 msgid "box_link_offset" msgstr "" #: fig/box_view.cpp:142 msgid "x" msgstr "" #: fig/box_view.cpp:142 msgid "y" msgstr "" #: fig/box_view.cpp:182 msgid "Properties..." msgstr "" #: fig/box_view.cpp:187 msgid "Activity" msgstr "" #: fig/box_view.cpp:188 msgid "Ctrl+Return" msgstr "" #: fig/box_view.cpp:193 msgid "Delete" msgstr "" #: fig/box_view.cpp:197 msgid "Color..." msgstr "" #: fig/box_view.cpp:202 msgid "Raise" msgstr "" #: fig/box_view.cpp:203 msgid "PgUp" msgstr "" #: fig/box_view.cpp:207 msgid "Send back" msgstr "" #: fig/box_view.cpp:208 msgid "PgDown" msgstr "" #: fig/box_view.cpp:212 msgid "Floating text" msgstr "" #: fig/box_view.cpp:214 msgid "Component" msgstr "" #: fig/box_view.cpp:216 msgid "Node" msgstr "" #: fig/box_view.cpp:218 msgid "Decision" msgstr "" #: fig/box_view.cpp:220 msgid "Database" msgstr "" #: fig/box_view.cpp:222 msgid "Activity start" msgstr "" #: fig/box_view.cpp:224 msgid "Activity end" msgstr "" #: fig/box_view.cpp:226 msgid "Horizontal fork/join" msgstr "" #: fig/box_view.cpp:228 msgid "Vertical fork/join" msgstr "" #: fig/box_view.cpp:230 msgid "Actor" msgstr "" #: fig/box_view.cpp:232 msgid "Usecase" msgstr "" #: fig/box_view.cpp:234 msgid "Matrix" msgstr "" #: fig/box_view.cpp:236 msgid "Boundary" msgstr "" #: fig/box_view.cpp:238 msgid "Class" msgstr "" #: fig/box_view.cpp:241 msgid "Import from file..." msgstr "" #: fig/box_view.cpp:243 msgid "Export to file..." msgstr "" #: fig/box_view.cpp:245 msgid "Copy image to clipboard" msgstr "" #: fig/box_view.cpp:267 msgid "File operations" msgstr "" #: fig/box_view.cpp:279 msgid "More elements" msgstr "" #: fig/box_view.cpp:317 msgid "Alignment" msgstr "" #: fig/box_view.cpp:319 msgid "Align left" msgstr "" #: fig/box_view.cpp:320 msgid "Align center" msgstr "" #: fig/box_view.cpp:321 msgid "Align right" msgstr "" #: fig/box_view.cpp:323 msgid "Align top" msgstr "" #: fig/box_view.cpp:324 msgid "Align middle" msgstr "" #: fig/box_view.cpp:325 msgid "Align bottom" msgstr "" #: fig/box_view.cpp:328 msgid "Size" msgstr "" #: fig/box_view.cpp:330 msgid "Same width" msgstr "" #: fig/box_view.cpp:331 msgid "Same height" msgstr "" #: fig/box_view.cpp:332 msgid "Same width and height" msgstr "" #: fig/box_view.cpp:589 fig/box_view.cpp:1871 msgid "Semantik diagram" msgstr "" #: fig/box_view.cpp:1684 fig/box_view.cpp:1720 fig/semantik_d_win.cpp:280 msgid "*.semd|Semantik diagram (*.semd)" msgstr "" #: fig/box_view.cpp:1685 fig/semantik_d_win.cpp:281 msgid "Choose a file to open" msgstr "" #: fig/box_view.cpp:1721 semantik.cpp:419 semantik.cpp:481 msgid "Choose a file name" msgstr "" #: fig/box_view.cpp:1735 semantik.cpp:432 msgid "" "The file \"%1\" already exists.\n" "Overwrite it?" msgstr "" #: fig/box_view.cpp:1736 semantik.cpp:433 msgid "Overwrite existing file" msgstr "" #: fig/box_view.cpp:1758 fig/box_view.cpp:1776 semantik.cpp:444 #: semantik.cpp:466 msgid "Saved '%1'" msgstr "" #: fig/matrix_dialog.cpp:32 table_dialog.cpp:32 msgid "Rows" msgstr "" #: fig/matrix_dialog.cpp:36 table_dialog.cpp:36 msgid "Columns" msgstr "" #: fig/semantik_d_win.cpp:64 semantik.cpp:202 msgid "Ctrl+H" msgstr "" #: fig/semantik_d_win.cpp:68 msgid "Files" msgstr "" #: fig/semantik_d_win.cpp:80 msgid "This is Semantik-d" msgstr "" #: fig/semantik_d_win.cpp:185 msgid "[Untitled]" msgstr "" #: fig/semantik_d_win.cpp:246 semantik.cpp:548 msgid "Untitled" msgstr "" #: fig/semantik_d_win.cpp:249 semantik.cpp:551 msgid "" "The document \"%1\" has been modified.\n" "Do you want to save your changes or discard them?" msgstr "" #: fig/semantik_d_win.cpp:250 semantik.cpp:552 msgid "Close Document" msgstr "" #: fig/semantik_d_win.cpp:385 semantik.cpp:492 msgid " [Modified] " msgstr "" #: fig/semantik_d_win.cpp:390 msgid "Semantik Diagram %1" msgstr "" #: fig/semantik_d_win.cpp:394 msgid "%1 %2 - Semantik Diagram" msgstr "" #: fig/semd.cpp:26 msgid "A tool for editing and organizing Semantik diagrams" msgstr "" #: fig/semd.cpp:42 main.cpp:34 msgid "A file to open on startup" msgstr "" #: fig/semd.cpp:43 msgid "An output file for exporting the diagram" msgstr "" #: fig/semd.cpp:44 msgid "Diagram width for printing" msgstr "" #: fig/semd.cpp:45 msgid "Diagram height for printing" msgstr "" #: fig/semd.cpp:47 msgid "Semantik-d" msgstr "" #: fig/semd.cpp:47 msgid "(C) 2013-2015 Thomas Nagy" msgstr "" #: fig/semd.cpp:49 main.cpp:40 msgid "Thomas Nagy" msgstr "" #: generator_dialog.cpp:30 msgid "Generate documents" msgstr "" #: generator_dialog.cpp:36 msgid "Generators" msgstr "" #: generator_dialog.cpp:39 msgid "Description" msgstr "" #: generator_dialog.cpp:63 msgid "Location" msgstr "" #: generator_dialog.cpp:114 msgid "No document generator chosen." msgstr "" #: generator_dialog.cpp:114 msgid "Missing data" msgstr "" #: generator_dialog.cpp:120 msgid "Invalid output directory %1" msgstr "" #: generator_dialog.cpp:120 msgid "Missing location" msgstr "" #: image_view.cpp:37 msgid "Change picture" msgstr "" #: image_view.cpp:41 msgid "Clear picture" msgstr "" #: image_view.cpp:66 msgid "Click to set a picture" msgstr "" #: image_view.cpp:70 msgid "Select an item on the map" msgstr "" #: image_view.cpp:166 msgid "*.png *.jpg *.jpeg *.gif|Image Files (*.png *.jpg *.jpeg *.gif)" msgstr "" #: image_view.cpp:167 msgid "Choose a picture" msgstr "" #: image_view.cpp:179 msgid "Could not load the picture" msgstr "" #: main.cpp:24 msgid "" "A mind-mapping tool for KDE\n" "Available exclusively for open systems such as OpenSuse, Gentoo or Fedora." msgstr "" #: main.cpp:35 msgid "An output file for printing the map" msgstr "" #: main.cpp:37 msgid "Semantik" msgstr "" #: main.cpp:38 msgid "(C) 2007-2015 Thomas Nagy" msgstr "" #. i18n: file: data/semantik-dui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantikui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantik-dui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantikui.rc:5 #. i18n: ectx: Menu (file) #: po/rc.cpp:3 po/rc.cpp:21 rc.cpp:3 rc.cpp:21 msgid "&File" msgstr "" #. i18n: file: data/semantik-dui.rc:25 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantikui.rc:8 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantik-dui.rc:25 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantikui.rc:8 #. i18n: ectx: Menu (edit) #: po/rc.cpp:6 po/rc.cpp:24 rc.cpp:6 rc.cpp:24 msgid "&Edit" msgstr "" #. i18n: file: data/semantik-dui.rc:28 #. i18n: ectx: Menu (view) #. i18n: file: data/semantikui.rc:13 #. i18n: ectx: Menu (view) #. i18n: file: data/semantik-dui.rc:28 #. i18n: ectx: Menu (view) #. i18n: file: data/semantikui.rc:13 #. i18n: ectx: Menu (view) #: po/rc.cpp:9 po/rc.cpp:27 rc.cpp:9 rc.cpp:27 msgid "&View" msgstr "" #. i18n: file: data/semantik-dui.rc:33 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantikui.rc:21 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantik-dui.rc:33 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantikui.rc:21 #. i18n: ectx: Menu (tools) #: po/rc.cpp:12 po/rc.cpp:30 rc.cpp:12 rc.cpp:30 msgid "&Tools" msgstr "" #. i18n: file: data/semantik-dui.rc:36 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantikui.rc:24 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantik-dui.rc:36 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantikui.rc:24 #. i18n: ectx: Menu (settings) #: po/rc.cpp:15 po/rc.cpp:33 rc.cpp:15 rc.cpp:33 msgid "&Settings" msgstr "" #. i18n: file: data/semantik-dui.rc:39 #. i18n: ectx: Menu (help) #. i18n: file: data/semantikui.rc:27 #. i18n: ectx: Menu (help) #. i18n: file: data/semantik-dui.rc:39 #. i18n: ectx: Menu (help) #. i18n: file: data/semantikui.rc:27 #. i18n: ectx: Menu (help) #: po/rc.cpp:18 po/rc.cpp:36 rc.cpp:18 rc.cpp:36 msgid "&Help" msgstr "" #. i18n: file: data/semantikui.rc:41 #. i18n: ectx: ToolBar (colorsToolBar) #: po/rc.cpp:39 rc.cpp:39 msgid "Colors Toolbar" msgstr "" #. i18n: file: data/semantikui.rc:45 #. i18n: ectx: ToolBar (flagsToolBar) #: po/rc.cpp:42 rc.cpp:42 msgid "Flags Toolbar" msgstr "" #: po/rc.cpp:43 rc.cpp:43 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: po/rc.cpp:44 rc.cpp:44 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #: pre_view.cpp:23 msgid "

    No preview available
    at this time

    " msgstr "" #: semantik.cpp:46 msgid "" "The map is empty, Semantik\n" "cannot create documents from it" msgstr "" #: semantik.cpp:46 msgid "Empty map" msgstr "" #: semantik.cpp:53 msgid "Template folder %1 is not readable" msgstr "" #: semantik.cpp:167 msgid "&Reorganize the map" msgstr "" #: semantik.cpp:169 msgid "Ctrl+R" msgstr "" #: semantik.cpp:172 msgid "&Export the map..." msgstr "" #: semantik.cpp:174 msgid "Ctrl+Shift+E" msgstr "" #: semantik.cpp:179 msgid "&Generate..." msgstr "" #: semantik.cpp:182 msgid "Ctrl+G" msgstr "" #: semantik.cpp:188 msgid "CustomColor" msgstr "" #: semantik.cpp:211 msgid "Data" msgstr "" #: semantik.cpp:235 msgid "Variables" msgstr "" #: semantik.cpp:244 msgid "Preview" msgstr "" #: semantik.cpp:256 msgid "Linear view" msgstr "" #: semantik.cpp:350 msgid "Welcome to Semantik" msgstr "" #: semantik.cpp:418 msgid "*.sem|Semantik file (*.sem)" msgstr "" #: semantik.cpp:480 msgid "*.sem *.kdi *.mm *.vym|All Supported Files (*.sem *.kdi *.mm *.vym)" msgstr "" #: semantik.cpp:497 msgid "Semantik %1" msgstr "" #: semantik.cpp:501 msgid "%1 %2 - Semantik" msgstr "" #: table_view.cpp:26 table_view.cpp:80 msgid "Add Row" msgstr "" #: table_view.cpp:27 msgid "Add a row" msgstr "" #: table_view.cpp:31 table_view.cpp:81 msgid "Add Column" msgstr "" #: table_view.cpp:32 msgid "Add a column" msgstr "" #: table_view.cpp:37 table_view.cpp:82 msgid "Remove Row" msgstr "" #: table_view.cpp:38 msgid "Remove a row" msgstr "" #: table_view.cpp:42 table_view.cpp:83 msgid "Remove Column" msgstr "" #: table_view.cpp:43 msgid "Remove a column" msgstr "" #: table_view.cpp:47 msgid "Redimension" msgstr "" #: table_view.cpp:48 msgid "Change table dimensions" msgstr "" #: text_view.cpp:41 msgid "&Bold" msgstr "" #: text_view.cpp:42 msgid "Ctrl+B" msgstr "" #: text_view.cpp:45 msgid "&Italic" msgstr "" #: text_view.cpp:46 msgid "Ctrl+I" msgstr "" #: text_view.cpp:49 msgid "&Underline" msgstr "" #: text_view.cpp:50 msgid "Ctrl+U" msgstr "" semantik-0.9.5/src/po/sk.po000664 000000 000000 00000057560 12732552614 015526 0ustar00rootroot000000 000000 # Slovak translations for semantik package # Slovenské preklady pre balík semantik. msgid "" msgstr "" "Project-Id-Version: semantik 0.7.3\n" "Report-Msgid-Bugs-To: https://github.com/ita1024/semantik/issues\n" "POT-Creation-Date: 2015-02-08 16:12+0100\n" "PO-Revision-Date: 2010-01-26 18:08+0100\n" "Last-Translator: Slavko\n" "Language-Team: Slovenský \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: UTF-8\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: base/data_item.cpp:60 canvas_view.cpp:246 canvas_view.cpp:298 #: canvas_view.cpp:310 msgid "Empty" msgstr "Prázdne" #: base/flag_scheme.cpp:14 msgid "Flag item(s) as..." msgstr "Označiť položku(y) ako..." #: base/sem_mediator.cpp:282 msgid "Automatic save failed for file: %1" msgstr "Zlyhalo automatické uloženie súboru: %1" #: base/sem_mediator.cpp:285 msgid "%1 saved automatically" msgstr "%1 automaticky uložený" #: base/sem_mediator.cpp:304 msgid "Color %1" msgstr "Farba %1" #: base/sem_mediator.cpp:617 msgid "File saving: missing file %1" msgstr "Ukladanie súboru: chýba súbor %1" #: base/sem_mediator.cpp:642 base/sem_mediator.cpp:1147 #: base/sem_mediator.cpp:1190 msgid "Missing bindings for opening files" msgstr "Chýba prepojenie otvorených súborov" #: base/sem_mediator.cpp:693 msgid "Missing filter file %1 for opening files" msgstr "Chýba súbor filtra %1 pre otváranie súborov" #: base/sem_mediator.cpp:693 base/sem_mediator.cpp:708 msgid "Broken installation" msgstr "" #: base/sem_mediator.cpp:708 #, fuzzy msgid "Missing python bindings for opening files" msgstr "Chýba prepojenie otvorených súborov" #: base/sem_mediator.cpp:724 msgid "Could not load the document %1" msgstr "" #: base/sem_mediator.cpp:724 #, fuzzy msgid "Broken document" msgstr "Zatvoriť dokument" #: base/sem_mediator.cpp:1113 msgid "Code generation failed: missing file %1" msgstr "Zlyhalo generovanie kódu: chýba súbor %1" #: base/sem_mediator.cpp:1152 msgid "Document generation completed successfully" msgstr "" #: browser.cpp:21 canvas_view.cpp:143 msgid "Toggle fullscreen" msgstr "" #: canvas_view.cpp:92 #, fuzzy msgid "Add an element" msgstr "Pridať stĺpec" #: canvas_view.cpp:97 fig/box_view.cpp:192 msgid "Delete selection" msgstr "Zmazať výber" #: canvas_view.cpp:102 #, fuzzy msgid "Insert a sibling" msgstr "Vložiť súrodenca" #: canvas_view.cpp:107 msgid "Move up" msgstr "Posunúť hore" #: canvas_view.cpp:108 msgid "Move down" msgstr "Posunúť dole" #: canvas_view.cpp:109 msgid "Move left" msgstr "Posunúť vľavo" #: canvas_view.cpp:110 msgid "Move right" msgstr "Posunúť vpravo" #: canvas_view.cpp:112 msgid "Select up" msgstr "Vybrať hore" #: canvas_view.cpp:113 msgid "Select down" msgstr "Vybrať dole" #: canvas_view.cpp:114 msgid "Select left" msgstr "Vybrať vľavo" #: canvas_view.cpp:115 msgid "Select right" msgstr "Vybrať vpravo" #: canvas_view.cpp:118 #, fuzzy msgid "Select subtree" msgstr "Vybrať hore" #: canvas_view.cpp:123 msgid "Next root" msgstr "Ďalší koreň" #: canvas_view.cpp:126 msgid "Toggle edit" msgstr "Prepnúť editáciu" #: canvas_view.cpp:131 #, fuzzy msgid "Cancel edit" msgstr "&Zrušiť" #: canvas_view.cpp:147 msgid "Colors" msgstr "Farby" #: canvas_view.cpp:158 msgid "Text" msgstr "Text" #: canvas_view.cpp:159 msgid "Diagram" msgstr "Diagram" #: canvas_view.cpp:160 msgid "Table" msgstr "Tabuľka" #: canvas_view.cpp:161 msgid "Image" msgstr "Obrázok" #: canvas_view.cpp:630 msgid "Color" msgstr "Farba" #: canvas_view.cpp:680 msgid "Flag" msgstr "Značka" #: canvas_view.cpp:1003 msgid "Click to set Item %1" msgstr "Kliknite pre výber položky %1" #: canvas_view.cpp:1346 msgid "*.png|PNG Files (*.png)" msgstr "" #: canvas_view.cpp:1384 msgid "No destination file selected" msgstr "" #: canvas_view.cpp:1419 #, fuzzy msgid "Exported '%1'" msgstr "Uložené '%1'" #: canvas_view.cpp:1421 #, fuzzy msgid "Could not save to %1" msgstr "Kliknite pre výber položky %1" #: canvas_view.cpp:1421 #, fuzzy msgid "Missing picture" msgstr "Zmeniť obrázok" #: canvas_view.cpp:1713 #, fuzzy msgid "Semantik map" msgstr "Semantik" #: canvas_view.cpp:1763 fig/box_view.cpp:1922 msgid "Printing cancelled" msgstr "" #: canvas_view.cpp:1774 fig/box_view.cpp:1933 msgid "Printing completed" msgstr "" #: canvas_view.cpp:1778 fig/box_view.cpp:1937 msgid "Problem during printing :-(" msgstr "" #: config_dialog.cpp:29 #, fuzzy msgid "Document settings" msgstr "názov dokumentu" #: config_dialog.cpp:37 msgid "Reorganization type" msgstr "Typ preusporiadania" #: config_dialog.cpp:41 msgid "Connection type" msgstr "Typ spojenia" #: config_dialog.cpp:45 msgid "Save document automatically" msgstr "Ukladať automaticky" #: config_dialog.cpp:49 msgid "Background color" msgstr "Farba pozadia" #: config_dialog.cpp:54 msgid "Fixed" msgstr "Pevné" #: config_dialog.cpp:54 msgid "Force-based" msgstr "" #: config_dialog.cpp:54 msgid "Incremental" msgstr "Vzostupné" #: config_dialog.cpp:58 msgid "Lines" msgstr "Čiary" #: config_dialog.cpp:58 msgid "Splines" msgstr "Krivky" #: config_dialog.cpp:62 msgid " min" msgstr " min" #: config_dialog.cpp:65 msgid "" "Interval in minutes for saving the document automatically, 0 for disabling " "this feature" msgstr "Interval automatického ukladania dokumentu v minútach, 0 pre vypnutie" #: data_view.cpp:17 msgid "

    No item selected

    " msgstr "

    Nie je vybratá položka

    " #: doc_dialog.cpp:30 msgid "First Name" msgstr "Prvé meno" #: doc_dialog.cpp:34 generator_dialog.cpp:56 msgid "Name" msgstr "Meno" #: doc_dialog.cpp:38 msgid "Organization" msgstr "Organizácia" #: doc_dialog.cpp:42 msgid "Email" msgstr "Email" #: export_map_dialog.cpp:31 #, fuzzy msgid "Export the map" msgstr "Prázdna mapa" #: export_map_dialog.cpp:37 msgid "File to write" msgstr "" #: export_map_dialog.cpp:43 msgid "Width" msgstr "" #: export_map_dialog.cpp:51 #, fuzzy msgid "Height" msgstr "Posunúť vpravo" #: fig/box_class_properties.cpp:89 vars_view.cpp:77 msgid "Code complete" msgstr "Kód dokončený" #: fig/box_class_properties.cpp:90 vars_view.cpp:78 msgid "Ctrl+space" msgstr "" #: fig/box_class_properties.cpp:246 msgid "Class properties" msgstr "" #: fig/box_class_properties.cpp:283 msgid "No class name given" msgstr "" #: fig/box_class_properties.cpp:283 #, fuzzy msgid "Missing class name" msgstr "Chýbajúce dáta" #: fig/box_document_properties.cpp:27 msgid "Diagram properties" msgstr "" #: fig/box_document_properties.cpp:37 msgid "Font" msgstr "" #: fig/box_document_properties.cpp:39 msgid "Font for diagram objects" msgstr "" #: fig/box_fork.cpp:334 fig/box_item.cpp:136 msgid "%1 x %2" msgstr "" #: fig/box_item.cpp:192 msgid "Diagram box properties" msgstr "" #: fig/box_item.cpp:193 #, fuzzy msgid "Text:" msgstr "Text" #: fig/box_link_properties.cpp:23 msgid "Link properties" msgstr "" #: fig/box_link_properties.cpp:33 msgid "Thickness" msgstr "" #: fig/box_link_properties.cpp:37 #, fuzzy msgid "Line Type" msgstr "Lineárne zobrazenie" #: fig/box_link_properties.cpp:41 msgid "Line Style" msgstr "" #: fig/box_link_properties.cpp:45 msgid "Origin arrow" msgstr "" #: fig/box_link_properties.cpp:49 msgid "Target arrow" msgstr "" #: fig/box_link_properties.cpp:59 msgid "Zigzag" msgstr "" #: fig/box_link_properties.cpp:60 #, fuzzy msgid "Straight" msgstr "Vybrať vpravo" #: fig/box_link_properties.cpp:64 msgid "Invisible line" msgstr "" #: fig/box_link_properties.cpp:65 #, fuzzy msgid "Solid Line" msgstr "plná čiara" #: fig/box_link_properties.cpp:66 #, fuzzy msgid "Dash Line" msgstr "čiarkovaná čiara" #: fig/box_link_properties.cpp:67 #, fuzzy msgid "Dot Line" msgstr "Čiary" #: fig/box_link_properties.cpp:71 fig/box_link_properties.cpp:79 msgid "No arrow" msgstr "" #: fig/box_link_properties.cpp:72 fig/box_link_properties.cpp:80 msgid "Triangle" msgstr "" #: fig/box_link_properties.cpp:73 fig/box_link_properties.cpp:81 #, fuzzy msgid "Link" msgstr "&Odkaz" #: fig/box_link_properties.cpp:74 fig/box_link_properties.cpp:82 msgid "Inheritance" msgstr "" #: fig/box_link_properties.cpp:75 fig/box_link_properties.cpp:83 #, fuzzy msgid "Aggregation" msgstr "Organizácia" #: fig/box_matrix.cpp:181 msgid "Last row: %2px, last column: %3px (size: %4 x %5)" msgstr "" #: fig/box_matrix.cpp:197 msgid "Row %1: %2px (size: %3 x %4)" msgstr "" #: fig/box_matrix.cpp:213 msgid "Column %1: %2px (size: %3 x %4)" msgstr "" #: fig/box_view.cpp:102 msgid "box_item" msgstr "" #: fig/box_view.cpp:104 msgid "id" msgstr "" #: fig/box_view.cpp:109 fig/box_view.cpp:119 msgid "c1" msgstr "" #: fig/box_view.cpp:110 fig/box_view.cpp:121 msgid "c2" msgstr "" #: fig/box_view.cpp:111 msgid "text" msgstr "" #: fig/box_view.cpp:112 #, fuzzy msgid "col" msgstr "&Posunúť" #: fig/box_view.cpp:115 fig/box_view.cpp:151 msgid "box_link" msgstr "" #: fig/box_view.cpp:118 msgid "p1" msgstr "" #: fig/box_view.cpp:120 msgid "p2" msgstr "" #: fig/box_view.cpp:133 msgid "pen_style" msgstr "" #: fig/box_view.cpp:134 msgid "border_width" msgstr "" #: fig/box_view.cpp:138 msgid "box_link_offset" msgstr "" #: fig/box_view.cpp:142 msgid "x" msgstr "" #: fig/box_view.cpp:142 msgid "y" msgstr "" #: fig/box_view.cpp:182 msgid "Properties..." msgstr "" #: fig/box_view.cpp:187 msgid "Activity" msgstr "" #: fig/box_view.cpp:188 msgid "Ctrl+Return" msgstr "" #: fig/box_view.cpp:193 msgid "Delete" msgstr "Zmazať" #: fig/box_view.cpp:197 msgid "Color..." msgstr "Farba..." #: fig/box_view.cpp:202 msgid "Raise" msgstr "" #: fig/box_view.cpp:203 msgid "PgUp" msgstr "" #: fig/box_view.cpp:207 msgid "Send back" msgstr "" #: fig/box_view.cpp:208 msgid "PgDown" msgstr "" #: fig/box_view.cpp:212 msgid "Floating text" msgstr "" #: fig/box_view.cpp:214 msgid "Component" msgstr "" #: fig/box_view.cpp:216 msgid "Node" msgstr "" #: fig/box_view.cpp:218 #, fuzzy msgid "Decision" msgstr "Zmena rozmerov" #: fig/box_view.cpp:220 #, fuzzy msgid "Database" msgstr "Dáta" #: fig/box_view.cpp:222 msgid "Activity start" msgstr "" #: fig/box_view.cpp:224 msgid "Activity end" msgstr "" #: fig/box_view.cpp:226 msgid "Horizontal fork/join" msgstr "" #: fig/box_view.cpp:228 msgid "Vertical fork/join" msgstr "" #: fig/box_view.cpp:230 msgid "Actor" msgstr "" #: fig/box_view.cpp:232 msgid "Usecase" msgstr "" #: fig/box_view.cpp:234 msgid "Matrix" msgstr "" #: fig/box_view.cpp:236 msgid "Boundary" msgstr "" #: fig/box_view.cpp:238 msgid "Class" msgstr "" #: fig/box_view.cpp:241 msgid "Import from file..." msgstr "" #: fig/box_view.cpp:243 msgid "Export to file..." msgstr "" #: fig/box_view.cpp:245 msgid "Copy image to clipboard" msgstr "" #: fig/box_view.cpp:267 msgid "File operations" msgstr "" #: fig/box_view.cpp:279 msgid "More elements" msgstr "" #: fig/box_view.cpp:317 msgid "Alignment" msgstr "" #: fig/box_view.cpp:319 msgid "Align left" msgstr "" #: fig/box_view.cpp:320 msgid "Align center" msgstr "" #: fig/box_view.cpp:321 #, fuzzy msgid "Align right" msgstr "Vybrať vpravo" #: fig/box_view.cpp:323 msgid "Align top" msgstr "" #: fig/box_view.cpp:324 msgid "Align middle" msgstr "" #: fig/box_view.cpp:325 msgid "Align bottom" msgstr "" #: fig/box_view.cpp:328 msgid "Size" msgstr "" #: fig/box_view.cpp:330 msgid "Same width" msgstr "" #: fig/box_view.cpp:331 #, fuzzy msgid "Same height" msgstr "Vybrať vpravo" #: fig/box_view.cpp:332 msgid "Same width and height" msgstr "" #: fig/box_view.cpp:589 fig/box_view.cpp:1871 #, fuzzy msgid "Semantik diagram" msgstr "Semantik" #: fig/box_view.cpp:1684 fig/box_view.cpp:1720 fig/semantik_d_win.cpp:280 #, fuzzy msgid "*.semd|Semantik diagram (*.semd)" msgstr "*.sem|Súbor Semantik (*.sem)" #: fig/box_view.cpp:1685 fig/semantik_d_win.cpp:281 #, fuzzy msgid "Choose a file to open" msgstr "Zvoľte meno súboru" #: fig/box_view.cpp:1721 semantik.cpp:419 semantik.cpp:481 msgid "Choose a file name" msgstr "Zvoľte meno súboru" #: fig/box_view.cpp:1735 semantik.cpp:432 msgid "" "The file \"%1\" already exists.\n" "Overwrite it?" msgstr "" #: fig/box_view.cpp:1736 semantik.cpp:433 msgid "Overwrite existing file" msgstr "" #: fig/box_view.cpp:1758 fig/box_view.cpp:1776 semantik.cpp:444 #: semantik.cpp:466 msgid "Saved '%1'" msgstr "Uložené '%1'" #: fig/matrix_dialog.cpp:32 table_dialog.cpp:32 msgid "Rows" msgstr "Riadky" #: fig/matrix_dialog.cpp:36 table_dialog.cpp:36 msgid "Columns" msgstr "Stĺpce" #: fig/semantik_d_win.cpp:64 semantik.cpp:202 msgid "Ctrl+H" msgstr "" #: fig/semantik_d_win.cpp:68 msgid "Files" msgstr "" #: fig/semantik_d_win.cpp:80 #, fuzzy msgid "This is Semantik-d" msgstr "Semantik" #: fig/semantik_d_win.cpp:185 #, fuzzy msgid "[Untitled]" msgstr "Bez mena" #: fig/semantik_d_win.cpp:246 semantik.cpp:548 msgid "Untitled" msgstr "Bez mena" #: fig/semantik_d_win.cpp:249 semantik.cpp:551 msgid "" "The document \"%1\" has been modified.\n" "Do you want to save your changes or discard them?" msgstr "" "Dokument \"%1\" bol zmenený.\n" "Chcete svoje zmeny uložiť alebo ich zahodiť?" #: fig/semantik_d_win.cpp:250 semantik.cpp:552 msgid "Close Document" msgstr "Zatvoriť dokument" #: fig/semantik_d_win.cpp:385 semantik.cpp:492 msgid " [Modified] " msgstr "" #: fig/semantik_d_win.cpp:390 #, fuzzy msgid "Semantik Diagram %1" msgstr "Semantik" #: fig/semantik_d_win.cpp:394 #, fuzzy msgid "%1 %2 - Semantik Diagram" msgstr "%1 - Semantik" #: fig/semd.cpp:26 msgid "A tool for editing and organizing Semantik diagrams" msgstr "" #: fig/semd.cpp:42 main.cpp:34 msgid "A file to open on startup" msgstr "" #: fig/semd.cpp:43 msgid "An output file for exporting the diagram" msgstr "" #: fig/semd.cpp:44 msgid "Diagram width for printing" msgstr "" #: fig/semd.cpp:45 msgid "Diagram height for printing" msgstr "" #: fig/semd.cpp:47 #, fuzzy msgid "Semantik-d" msgstr "Semantik" #: fig/semd.cpp:47 msgid "(C) 2013-2015 Thomas Nagy" msgstr "" #: fig/semd.cpp:49 main.cpp:40 msgid "Thomas Nagy" msgstr "" #: generator_dialog.cpp:30 #, fuzzy msgid "Generate documents" msgstr "Generátoy" #: generator_dialog.cpp:36 msgid "Generators" msgstr "Generátoy" #: generator_dialog.cpp:39 msgid "Description" msgstr "Popis" #: generator_dialog.cpp:63 msgid "Location" msgstr "Umiestnenie" #: generator_dialog.cpp:114 msgid "No document generator chosen." msgstr "Nie je zvolený generátor dokumentu." #: generator_dialog.cpp:114 msgid "Missing data" msgstr "Chýbajúce dáta" #: generator_dialog.cpp:120 msgid "Invalid output directory %1" msgstr "Neplatný výstupný adresár %1" #: generator_dialog.cpp:120 msgid "Missing location" msgstr "Chýbajúce umiestnenie" #: image_view.cpp:37 msgid "Change picture" msgstr "Zmeniť obrázok" #: image_view.cpp:41 msgid "Clear picture" msgstr "Zmazať obrázok" #: image_view.cpp:66 msgid "Click to set a picture" msgstr "Kliknite pre nastavenie obrázka" #: image_view.cpp:70 msgid "Select an item on the map" msgstr "Vyberte položku mapy" #: image_view.cpp:166 #, fuzzy msgid "*.png *.jpg *.jpeg *.gif|Image Files (*.png *.jpg *.jpeg *.gif)" msgstr "Súbory obrázkov (*.png *.jpg *.jpeg *.gif)" #: image_view.cpp:167 #, fuzzy msgid "Choose a picture" msgstr "Vyberte súbor" #: image_view.cpp:179 #, fuzzy msgid "Could not load the picture" msgstr "Kliknite pre nastavenie obrázka" #: main.cpp:24 msgid "" "A mind-mapping tool for KDE\n" "Available exclusively for open systems such as OpenSuse, Gentoo or Fedora." msgstr "" #: main.cpp:35 msgid "An output file for printing the map" msgstr "" #: main.cpp:37 msgid "Semantik" msgstr "Semantik" #: main.cpp:38 msgid "(C) 2007-2015 Thomas Nagy" msgstr "" #. i18n: file: data/semantik-dui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantikui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantik-dui.rc:5 #. i18n: ectx: Menu (file) #. i18n: file: data/semantikui.rc:5 #. i18n: ectx: Menu (file) #: po/rc.cpp:3 po/rc.cpp:21 rc.cpp:3 rc.cpp:21 msgid "&File" msgstr "" #. i18n: file: data/semantik-dui.rc:25 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantikui.rc:8 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantik-dui.rc:25 #. i18n: ectx: Menu (edit) #. i18n: file: data/semantikui.rc:8 #. i18n: ectx: Menu (edit) #: po/rc.cpp:6 po/rc.cpp:24 rc.cpp:6 rc.cpp:24 msgid "&Edit" msgstr "" #. i18n: file: data/semantik-dui.rc:28 #. i18n: ectx: Menu (view) #. i18n: file: data/semantikui.rc:13 #. i18n: ectx: Menu (view) #. i18n: file: data/semantik-dui.rc:28 #. i18n: ectx: Menu (view) #. i18n: file: data/semantikui.rc:13 #. i18n: ectx: Menu (view) #: po/rc.cpp:9 po/rc.cpp:27 rc.cpp:9 rc.cpp:27 msgid "&View" msgstr "" #. i18n: file: data/semantik-dui.rc:33 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantikui.rc:21 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantik-dui.rc:33 #. i18n: ectx: Menu (tools) #. i18n: file: data/semantikui.rc:21 #. i18n: ectx: Menu (tools) #: po/rc.cpp:12 po/rc.cpp:30 rc.cpp:12 rc.cpp:30 msgid "&Tools" msgstr "" #. i18n: file: data/semantik-dui.rc:36 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantikui.rc:24 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantik-dui.rc:36 #. i18n: ectx: Menu (settings) #. i18n: file: data/semantikui.rc:24 #. i18n: ectx: Menu (settings) #: po/rc.cpp:15 po/rc.cpp:33 rc.cpp:15 rc.cpp:33 msgid "&Settings" msgstr "" #. i18n: file: data/semantik-dui.rc:39 #. i18n: ectx: Menu (help) #. i18n: file: data/semantikui.rc:27 #. i18n: ectx: Menu (help) #. i18n: file: data/semantik-dui.rc:39 #. i18n: ectx: Menu (help) #. i18n: file: data/semantikui.rc:27 #. i18n: ectx: Menu (help) #: po/rc.cpp:18 po/rc.cpp:36 rc.cpp:18 rc.cpp:36 msgid "&Help" msgstr "" #. i18n: file: data/semantikui.rc:41 #. i18n: ectx: ToolBar (colorsToolBar) #: po/rc.cpp:39 rc.cpp:39 #, fuzzy msgid "Colors Toolbar" msgstr "Farby" #. i18n: file: data/semantikui.rc:45 #. i18n: ectx: ToolBar (flagsToolBar) #: po/rc.cpp:42 rc.cpp:42 msgid "Flags Toolbar" msgstr "" #: po/rc.cpp:43 rc.cpp:43 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: po/rc.cpp:44 rc.cpp:44 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #: pre_view.cpp:23 msgid "

    No preview available
    at this time

    " msgstr "

    V tomto okamihu
    nie je dostupná ukážka.

    " #: semantik.cpp:46 msgid "" "The map is empty, Semantik\n" "cannot create documents from it" msgstr "" "mapa je prázdna,\n" "Semantik z nej nemôže vytvoriť dokument" #: semantik.cpp:46 msgid "Empty map" msgstr "Prázdna mapa" #: semantik.cpp:53 msgid "Template folder %1 is not readable" msgstr "Adresár šablón %1 nie je čitateľný" #: semantik.cpp:167 msgid "&Reorganize the map" msgstr "P&reusporiadať mapu" #: semantik.cpp:169 msgid "Ctrl+R" msgstr "" #: semantik.cpp:172 msgid "&Export the map..." msgstr "" #: semantik.cpp:174 msgid "Ctrl+Shift+E" msgstr "" #: semantik.cpp:179 msgid "&Generate..." msgstr "&Generovať..." #: semantik.cpp:182 msgid "Ctrl+G" msgstr "" #: semantik.cpp:188 msgid "CustomColor" msgstr "VlastnáFarba" #: semantik.cpp:211 msgid "Data" msgstr "Dáta" #: semantik.cpp:235 msgid "Variables" msgstr "Premenné" #: semantik.cpp:244 msgid "Preview" msgstr "Ukážka" #: semantik.cpp:256 msgid "Linear view" msgstr "Lineárne zobrazenie" #: semantik.cpp:350 msgid "Welcome to Semantik" msgstr "Vitajte v Semantiku" #: semantik.cpp:418 msgid "*.sem|Semantik file (*.sem)" msgstr "*.sem|Súbor Semantik (*.sem)" #: semantik.cpp:480 msgid "*.sem *.kdi *.mm *.vym|All Supported Files (*.sem *.kdi *.mm *.vym)" msgstr "" "*.sem *.kdi *.mm *.vym|Všetky podporované súbory (*.sem *.kdi *.mm *.vym)" #: semantik.cpp:497 #, fuzzy msgid "Semantik %1" msgstr "Semantik" #: semantik.cpp:501 #, fuzzy msgid "%1 %2 - Semantik" msgstr "%1 - Semantik" #: table_view.cpp:26 table_view.cpp:80 msgid "Add Row" msgstr "Pridať riadok" #: table_view.cpp:27 msgid "Add a row" msgstr "Pridať riadok" #: table_view.cpp:31 table_view.cpp:81 msgid "Add Column" msgstr "Pridať stĺpec" #: table_view.cpp:32 msgid "Add a column" msgstr "Pridať stĺpec" #: table_view.cpp:37 table_view.cpp:82 msgid "Remove Row" msgstr "Odstrániť riadok" #: table_view.cpp:38 msgid "Remove a row" msgstr "Odstrániť riadok" #: table_view.cpp:42 table_view.cpp:83 msgid "Remove Column" msgstr "Odstrániť stĺpec" #: table_view.cpp:43 msgid "Remove a column" msgstr "Odstrániť stĺpec" #: table_view.cpp:47 msgid "Redimension" msgstr "Zmena rozmerov" #: table_view.cpp:48 msgid "Change table dimensions" msgstr "Zmeňte rozmery tabuľky" #: text_view.cpp:41 msgid "&Bold" msgstr "&Bold" #: text_view.cpp:42 msgid "Ctrl+B" msgstr "" #: text_view.cpp:45 msgid "&Italic" msgstr "&Italic" #: text_view.cpp:46 msgid "Ctrl+I" msgstr "" #: text_view.cpp:49 msgid "&Underline" msgstr "&Underline" #: text_view.cpp:50 msgid "Ctrl+U" msgstr "" #~ msgid "Data type" #~ msgstr "Typ dát" #~ msgid "Ready" #~ msgstr "Pripravený" #~ msgid "Insert child" #~ msgstr "Vložiť potomka" #~ msgid "Add Box" #~ msgstr "Pridať prvok" #~ msgid "Connection width" #~ msgstr "Spojenie s" #~ msgid "1px" #~ msgstr "1px" #~ msgid "2px" #~ msgstr "2px" #~ msgid "3px" #~ msgstr "3px" #~ msgid "Connection style" #~ msgstr "Štýl spojenia" #~ msgid "dot line" #~ msgstr "bodkovaná čiara" #~ msgid "exclude the table" #~ msgstr "vylúčiť tabuľku" #~ msgid "fit the item on one slide" #~ msgstr "rozšíriť položku na snímok" #~ msgid "picture caption" #~ msgstr "titulok obrázka" #~ msgid "picture dimension in pdf files" #~ msgstr "rozmery obrázku v súboroch PDF" #~ msgid "html div style: style=\"width: 99px;\"" #~ msgstr "štýl html div: style=\"width: 99px;\"" #~ msgid "html picture style: style=\"width: 99px;\"" #~ msgstr "štýl html picture: style=\"width: 99px;\"" #~ msgid "do not use this item for generating slides" #~ msgstr "nepoužiť túto položku pre generovanie snímkov" #~ msgid "command to launch (%s is the resulting file)" #~ msgstr "príkaz na vykonanie (%s je výsledný súbor)" #~ msgid "cd `echo %s | sed s/main.tex//` && ./waf configure && waf --view" #~ msgstr "cd `echo %s | sed s/main.tex//` && ./waf configure && waf --view" #~ msgid "firefox %s" #~ msgstr "firefox %s" #~ msgid "ooimpress %s" #~ msgstr "ooimpress %s" #~ msgid "oowriter %s" #~ msgstr "oowriter %s" #~ msgid "document author" #~ msgstr "autor dokumentu" #~ msgid "turn off the document author (latex)" #~ msgstr "vypnúť autora dokumentu (latex)" #~ msgid "document class (latex: a4, report, book)" #~ msgstr "trieda dokumentu (latex: a4, report, kniha)" #~ msgid "company" #~ msgstr "spoločnosť" #~ msgid "document date" #~ msgstr "dátum dokumentu" #~ msgid "turn of the document date (latex)" #~ msgstr "vypnúť dátum dokumentu (latex)" #~ msgid "location of the presentation" #~ msgstr "umiestnenie prezentácie" #~ msgid "turn off the document title (latex)" #~ msgstr "vypnúť názov dokumentu (latex)" #~ msgid "footer center (pdflatex)" #~ msgstr "pätka v strede (pdflatex)" #~ msgid "footer left (pdflatex)" #~ msgstr "pätka vľavo (pdflatex)" #~ msgid "turn off the fancy output" #~ msgstr "vypnúť vkusný výstup" #~ msgid "footer right" #~ msgstr "pätka vpravo" #~ msgid "header center (pdflatex)" #~ msgstr "hlavička v strede (pdflatex)" #~ msgid "header left" #~ msgstr "hlavička vľavo" #~ msgid "header right" #~ msgstr "hlavička vpravo" #~ msgid "openoffice.org language (fr_FR)" #~ msgstr "jazyk openoffice.org language (sk_SK)" #~ msgid "openoffice.org presentation language" #~ msgstr "jazyk prezentácie openoffice.org" #~ msgid "openoffice.org text language" #~ msgstr "jazyk textu openoffice.org" #~ msgid "Generator dialog" #~ msgstr "Generátor dialógu" #~ msgid "&Ok" #~ msgstr "&Ok" #~ msgid "File %1 does not exist" #~ msgstr "Súbor %1 neexistuje" #~ msgid "File %1 could not be opened" #~ msgstr "Súbor %1 nemožno otvoriť" #~ msgid "something bad happened" #~ msgstr "nastalo niečo zlé" #~ msgid "something worse happened" #~ msgstr "nastalo niečo hrozné" #~ msgid "&Select" #~ msgstr "&Vybrať" #~ msgid "&Sort" #~ msgstr "&Zoradiť" #~ msgid "exclude the picture" #~ msgstr "vylúčiť obrázok" #~ msgid "latex language: english (frenchb, )" #~ msgstr "jazyk latex: slovak (english, frenchb, )" semantik-0.9.5/src/pre_view.cpp000664 000000 000000 00000002417 12732552614 016446 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include "data_item.h" #include "sem_mediator.h" #include "pre_view.h" #include "con.h" #include "sembind.h" #include "browser.h" pre_view::pre_view(QWidget *i_oParent, sem_mediator *i_oControl) : QStackedWidget(i_oParent) { m_oMediator = i_oControl; m_oLabel = new QLabel(this); m_oLabel->setText(trUtf8("

    No preview available
    at this time

    ")); addWidget(m_oLabel); /*m_oBrowserObject = new KHTMLPart(this, this); m_oBrowser = m_oBrowserObject->widget(); //new QTextBrowser(this); addWidget(m_oBrowser);*/ m_oBrowser = new browser(this); addWidget(m_oBrowser); } void pre_view::notify_preview() { QString l_s = bind_node::get_var(notr("preview")); if (l_s.endsWith(notr(".html"))) { if (m_oBrowser->url() == QUrl(l_s)) { m_oBrowser->reload(); } else { m_oBrowser->load(QUrl(l_s)); m_oBrowser->show(); } setCurrentWidget(m_oBrowser); } else if (l_s.endsWith(notr(".tex"))) { //m_oBrowser->openUrl(KUrl(l_s)); //setCurrentWidget(m_oBrowser); } else { setCurrentWidget(m_oLabel); } } #include "pre_view.moc" semantik-0.9.5/src/pre_view.h000664 000000 000000 00000000626 12732552614 016113 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef PRE_VIEW_H #define PRE_VIEW_H #include #include "con.h" class browser; class QLabel; class QWebView; class pre_view : public QStackedWidget { Q_OBJECT public: pre_view(QWidget *i_oParent, sem_mediator *i_oControl); sem_mediator *m_oMediator; QLabel *m_oLabel; browser *m_oBrowser; public slots: void notify_preview(); }; #endif semantik-0.9.5/src/semantik.cpp000664 000000 000000 00000053750 12732552614 016447 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "box_view.h" #include "sembind.h" #include "semantik.h" #include "canvas_view.h" #include "sem_mediator.h" #include "image_view.h" #include "config_dialog.h" #include "text_view.h" #include "table_view.h" #include "vars_view.h" #include "pre_view.h" #include "linear_container.h" #include "template_entry.h" #include "generator_dialog.h" #include "data_view.h" #include "doc_dialog.h" #include "aux.h" #include "linear_view.h" void semantik_win::slot_generate() { if (m_oMediator->choose_root() <= 0) { KMessageBox::sorry(this, trUtf8("The map is empty, Semantik\ncannot create documents from it"), trUtf8("Empty map")); return; } QDir l_oDir(TEMPLATE_DIR); if (!l_oDir.exists() || !l_oDir.isReadable()) { slot_message(trUtf8("Template folder %1 is not readable").arg(TEMPLATE_DIR), 5000); return; } QFileInfoList l_o = l_oDir.entryInfoList(QStringList()<<"*.py", QDir::Files, QDir::Name); //qDebug()< l_oLst; foreach (QFileInfo l_oInfo, l_o) { template_entry l_oTemplate; int l_iCnt = 0; if (l_oInfo.isReadable()) { QFile l_oFile(l_oInfo.absoluteFilePath()); if (!l_oFile.open(QIODevice::ReadOnly)) { //qDebug()<<"could not open the file"<setText(m_oMediator->m_sOutProject); l_oGen.m_oLocation->setText(m_oMediator->m_sOutDir); if (l_oGen.m_oLocation->text().length()<2) l_oGen.m_oLocation->setText(bind_node::get_var(notr("outdir"))); l_oGen.activate_from_name(m_oMediator->m_sOutTemplate); if (l_oGen.exec() == QDialog::Accepted) { m_oMediator->m_sOutDir = l_oGen.m_oLocation->text(); m_oMediator->m_sOutProject = l_oGen.m_oName->text(); m_oMediator->m_sOutTemplate = l_oGen.m_sShortName; m_oMediator->generate_docs(l_oGen.m_sCurrent, l_oGen.m_oName->text(), l_oGen.m_oLocation->text()); } } semantik_win::semantik_win(QWidget *i_oParent) : KXmlGuiWindow(i_oParent) { setObjectName("semantik_win"); setWindowIcon(KIcon("semantik")); m_oMediator = new sem_mediator(this); connect(m_oMediator, SIGNAL(sig_message(const QString&, int)), this, SLOT(slot_message(const QString&, int))); connect(m_oMediator, SIGNAL(update_title()), this, SLOT(update_title())); QFrame *fr = new QFrame(this); fr->setLineWidth(0); fr->setFrameStyle(QFrame::NoFrame); m_oCanvas = new canvas_view(fr, m_oMediator); setCentralWidget(fr); QGridLayout *ll = new QGridLayout(fr); ll->addWidget(m_oCanvas); m_oCanvas->m_oSemantikWindow = this; connect(m_oCanvas, SIGNAL(sig_message(const QString&, int)), this, SLOT(slot_message(const QString&, int))); //BEGIN setup_actions(); KStandardAction::quit(this, SLOT(close()), actionCollection()); KStandardAction::save(this, SLOT(slot_save()), actionCollection()); KStandardAction::saveAs(this, SLOT(slot_save_as()), actionCollection()); KStandardAction::open(this, SLOT(slot_open()), actionCollection()); KStandardAction::print(m_oCanvas, SLOT(slot_print()), actionCollection()); KStandardAction::tipOfDay(this, SLOT(slot_tip_of_day()), actionCollection()); m_oUndoAct = KStandardAction::undo(m_oMediator, SLOT(slot_undo()), actionCollection()); m_oUndoAct->setEnabled(false); m_oRedoAct = KStandardAction::redo(m_oMediator, SLOT(slot_redo()), actionCollection()); m_oRedoAct->setEnabled(false); m_oRecentFilesAct = KStandardAction::openRecent(this, SLOT(slot_recent(const KUrl&)), actionCollection()); m_oReorgAct = new KAction(trUtf8("&Reorganize the map"), this); actionCollection()->addAction(notr("reorganize_map"), m_oReorgAct); m_oReorgAct->setShortcut(trUtf8("Ctrl+R")); connect(m_oReorgAct, SIGNAL(triggered(bool)), m_oCanvas, SLOT(reorganize())); m_oExportSizeAct = new KAction(trUtf8("&Export the map..."), this); actionCollection()->addAction(notr("export_map_size"), m_oExportSizeAct); m_oExportSizeAct->setShortcut(trUtf8("Ctrl+Shift+E")); connect(m_oExportSizeAct, SIGNAL(triggered(bool)), m_oCanvas, SLOT(export_map_size())); KStandardAction::preferences(this, SLOT(slot_properties()), actionCollection()); m_oGenerateAct = new KAction(trUtf8("&Generate..."), this); actionCollection()->addAction(notr("generate_doc"), m_oGenerateAct); m_oGenerateAct->setIcon(KIcon(notr("run-build-file"))); m_oGenerateAct->setShortcut(trUtf8("Ctrl+G")); connect(m_oGenerateAct, SIGNAL(triggered(bool)), SLOT(slot_generate())); flag_scheme l_oScheme(this, notr("crsc-app-colors"), ""); m_oColorGroup = new QActionGroup(this); m_oCustomColorAct = new QAction(l_oScheme._icon(), trUtf8("CustomColor"), m_oColorGroup); m_oColorGroup->setExclusive(true); connect(m_oColorGroup, SIGNAL(triggered(QAction*)), m_oCanvas, SLOT(change_colors(QAction*))); m_oFlagGroup = new QActionGroup(this); m_oFlagGroup->setExclusive(false); connect(m_oFlagGroup, SIGNAL(triggered(QAction*)), m_oCanvas, SLOT(change_flags(QAction*))); //m_oCanvasFitZoom = new KAction(trUtf8("Fit zoom"), this); //actionCollection()->addAction(notr("zoom_map"), m_oCanvasFitZoom); //m_oCanvasFitZoom->setIcon(KIcon(notr("zoom-best-fit"))); //connect(m_oCanvasFitZoom, SIGNAL(triggered(bool)), m_oCanvas, SLOT(fit_zoom())); m_oCanvasFitZoom = KStandardAction::fitToPage(this, SLOT(fit_zoom()), actionCollection()); m_oCanvasFitZoom->setIcon(KIcon(notr("zoom-best-fit"))); m_oCanvasFitZoom->setShortcut(trUtf8("Ctrl+H")); KStandardAction::zoomIn(m_oCanvas, SLOT(zoom_in()), actionCollection()); KStandardAction::zoomOut(m_oCanvas, SLOT(zoom_out()), actionCollection()); //END setupActions() //setStandardToolBarMenuEnabled(true); QDockWidget *l_oDockData = new QDockWidget(trUtf8("Data"), this); l_oDockData->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea); m_oDataView = new data_view(l_oDockData, m_oMediator); l_oDockData->setWidget(m_oDataView); addDockWidget(Qt::BottomDockWidgetArea, l_oDockData); actionCollection()->addAction(notr("show_dock_data"), l_oDockData->toggleViewAction()); l_oDockData->setObjectName(notr("DataDock")); m_oTextView = new text_view(m_oDataView, m_oMediator); m_oDataView->addWidget(m_oTextView); m_oImageView = new image_view(m_oDataView, m_oMediator); m_oDataView->addWidget(m_oImageView); m_oTableView = new table_view(m_oDataView, m_oMediator); m_oDataView->addWidget(m_oTableView); m_oDiagramView = new box_view(m_oDataView, m_oMediator); m_oDiagramView->m_bShowFileMenu = true; m_oDataView->addWidget(m_oDiagramView); connect(m_oColorGroup, SIGNAL(triggered(QAction*)), m_oDiagramView, SLOT(change_colors(QAction*))); connect(m_oDiagramView, SIGNAL(sig_message(const QString&, int)), this, SLOT(slot_message(const QString&, int))); QDockWidget *l_oDockVars = new QDockWidget(trUtf8("Variables"), this); l_oDockVars->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea); m_oVarsView = new vars_view(l_oDockVars, m_oMediator); l_oDockVars->setWidget(m_oVarsView); addDockWidget(Qt::BottomDockWidgetArea, l_oDockVars); l_oDockVars->setObjectName(notr("VarsDock")); actionCollection()->addAction(notr("show_dock_vars"), l_oDockVars->toggleViewAction()); m_oVarsView->init_completer(); QDockWidget *l_oDockPreview = new QDockWidget(trUtf8("Preview"), this); l_oDockPreview->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea); m_oPreView = new pre_view(l_oDockPreview, m_oMediator); l_oDockPreview->setWidget(m_oPreView); addDockWidget(Qt::RightDockWidgetArea, l_oDockPreview); actionCollection()->addAction(notr("show_dock_preview"), l_oDockPreview->toggleViewAction()); l_oDockPreview->setObjectName(notr("PreviewDock")); tabifyDockWidget(l_oDockData, l_oDockVars); QDockWidget *l_oDock = new QDockWidget(trUtf8("Linear view"), this); m_oTree = new linear_container(l_oDock, m_oMediator); l_oDock->setWidget(m_oTree); addDockWidget(Qt::LeftDockWidgetArea, l_oDock); actionCollection()->addAction(notr("show_dock_linear"), l_oDock->toggleViewAction()); l_oDock->setObjectName(notr("LinearDock")); setupGUI(QSize(800, 800), Default, notr("semantikui.rc")); m_oMediator->m_oCurrentUrl = KUrl(); update_title(); m_oColorsToolBar = toolBar(notr("colorsToolBar")); m_oFlagsToolBar = toolBar(notr("flagsToolBar")); linear_view* ln = m_oTree->m_oView; connect(m_oMediator, SIGNAL(sig_preview()), m_oPreView, SLOT(notify_preview())); connect(m_oMediator, SIGNAL(sig_add_item(int)), m_oCanvas, SLOT(notify_add_item(int))); connect(m_oMediator, SIGNAL(sig_add_item(int)), ln, SLOT(notify_add_item(int))); connect(m_oMediator, SIGNAL(sig_add_item(int)), m_oDiagramView, SLOT(notify_add_item(int))); connect(m_oMediator, SIGNAL(sig_delete_item(int)), m_oCanvas, SLOT(notify_delete_item(int))); connect(m_oMediator, SIGNAL(sig_delete_item(int)), ln, SLOT(notify_delete_item(int))); connect(m_oMediator, SIGNAL(sig_link_items(int, int)), m_oCanvas, SLOT(notify_link_items(int, int))); connect(m_oMediator, SIGNAL(sig_link_items(int, int)), ln, SLOT(notify_link_items(int, int))); connect(m_oMediator, SIGNAL(sig_unlink_items(int, int)), m_oCanvas, SLOT(notify_unlink_items(int, int))); connect(m_oMediator, SIGNAL(sig_unlink_items(int, int)), ln, SLOT(notify_unlink_items(int, int))); connect(m_oMediator, SIGNAL(sig_repaint(int)), m_oCanvas, SLOT(notify_repaint(int))); connect(m_oMediator, SIGNAL(sig_repaint(int)), ln, SLOT(notify_repaint(int))); connect(m_oMediator, SIGNAL(sig_edit(int)), m_oCanvas, SLOT(notify_edit(int))); connect(m_oMediator, SIGNAL(sig_edit(int)), ln, SLOT(notify_edit(int))); connect(m_oMediator, SIGNAL(sig_text(int)), m_oTextView, SLOT(notify_text(int))); connect(m_oMediator, SIGNAL(sig_vars(int)), m_oVarsView, SLOT(notify_vars(int))); connect(m_oMediator, SIGNAL(sig_table(int)), m_oTableView, SLOT(notify_table(int))); connect(m_oMediator, SIGNAL(sig_flag(int)), m_oCanvas, SLOT(notify_flag(int))); connect(m_oMediator, SIGNAL(sig_select(const QList&, const QList&)), m_oCanvas, SLOT(notify_select(const QList&, const QList&))); connect(m_oMediator, SIGNAL(sig_select(const QList&, const QList&)), ln, SLOT(notify_select(const QList&, const QList&))); connect(m_oMediator, SIGNAL(sig_select(const QList&, const QList&)), m_oDataView, SLOT(notify_select(const QList&, const QList&))); connect(m_oMediator, SIGNAL(sig_select(const QList&, const QList&)), m_oTextView, SLOT(notify_select(const QList&, const QList&))); connect(m_oMediator, SIGNAL(sig_select(const QList&, const QList&)), m_oVarsView, SLOT(notify_select(const QList&, const QList&))); connect(m_oMediator, SIGNAL(sig_select(const QList&, const QList&)), m_oImageView, SLOT(notify_select(const QList&, const QList&))); connect(m_oMediator, SIGNAL(sig_select(const QList&, const QList&)), m_oTableView, SLOT(notify_select(const QList&, const QList&))); connect(m_oMediator, SIGNAL(sig_select(const QList&, const QList&)), m_oDiagramView, SLOT(notify_select(const QList&, const QList&))); connect(m_oMediator, SIGNAL(sig_select(const QList&, const QList&)), ln, SLOT(notify_select(const QList&, const QList&))); connect(m_oMediator, SIGNAL(sig_sort(int, bool)), m_oCanvas, SLOT(notify_sort(int, bool))); connect(m_oMediator, SIGNAL(sig_sort(int, bool)), ln, SLOT(notify_sort(int, bool))); connect(m_oMediator, SIGNAL(sig_datatype(int)), m_oDataView, SLOT(notify_datatype(int))); connect(m_oMediator, SIGNAL(sig_datatype(int)), ln, SLOT(notify_datatype(int))); connect(m_oMediator, SIGNAL(sig_pic(int)), m_oCanvas, SLOT(notify_pic(int))); connect(m_oMediator, SIGNAL(sig_pic(int)), m_oImageView, SLOT(notify_pic(int))); connect(m_oMediator, SIGNAL(sig_move(const QList&, const QList&)), m_oCanvas, SLOT(notify_move(const QList&, const QList&))); connect(m_oMediator, SIGNAL(sync_flags()), m_oCanvas, SLOT(sync_flags())); connect(m_oMediator, SIGNAL(sync_colors()), m_oCanvas, SLOT(sync_colors())); connect(m_oImageView, SIGNAL(sig_message(const QString&, int)), this, SLOT(slot_message(const QString&, int))); connect(m_oMediator, SIGNAL(sig_open_map()), m_oCanvas, SLOT(notify_open_map())); connect(m_oMediator, SIGNAL(sig_change_data(int)), m_oCanvas, SLOT(notify_change_data(int))); connect(m_oMediator, SIGNAL(sig_export_doc()), m_oCanvas, SLOT(notify_export_doc())); connect(m_oMediator, SIGNAL(sig_export_item(int)), m_oDiagramView, SLOT(notify_export_item(int))); connect(m_oMediator, SIGNAL(sig_export_item(int)), m_oImageView, SLOT(notify_export_item(int))); connect(m_oMediator, SIGNAL(sig_add_box(int, int)), m_oDiagramView, SLOT(notify_add_box(int, int))); connect(m_oMediator, SIGNAL(sig_del_box(int, int)), m_oDiagramView, SLOT(notify_del_box(int, int))); connect(m_oMediator, SIGNAL(sig_edit_box(int, int)), m_oDiagramView, SLOT(notify_edit_box(int, int))); connect(m_oMediator, SIGNAL(sig_link_box(int, data_link*)), m_oDiagramView, SLOT(notify_link_box(int, data_link*))); connect(m_oMediator, SIGNAL(sig_unlink_box(int, data_link*)), m_oDiagramView, SLOT(notify_unlink_box(int, data_link*))); connect(m_oMediator, SIGNAL(sig_change_link_box(int, data_link*)), m_oDiagramView, SLOT(notify_change_link_box(int, data_link*))); connect(m_oMediator, SIGNAL(sig_box_props(int, const QList&)), m_oDiagramView, SLOT(notify_box_props(int, const QList&))); connect(m_oMediator, SIGNAL(sig_pos_box(int, const QList&)), m_oDiagramView, SLOT(notify_pos_box(int, const QList&))); connect(m_oMediator, SIGNAL(sig_size_box(int, const QList&)), m_oDiagramView, SLOT(notify_size_box(int, const QList&))); connect(m_oMediator, SIGNAL(sig_focus(void *)), m_oDiagramView, SLOT(notify_focus(void *))); connect(m_oMediator, SIGNAL(sig_focus(void *)), m_oCanvas, SLOT(notify_focus(void *))); connect(m_oMediator, SIGNAL(sig_change_properties(void *)), m_oDiagramView, SLOT(notify_change_properties(void *))); m_oTree->m_oView->addAction(m_oCanvas->m_oDeleteAction); // FIXME //qDebug()<<"instance is "<init_colors(); m_oMediator->init_flags(); read_config(); statusBar()->showMessage(trUtf8("Welcome to Semantik"), 2000); setAutoSaveSettings(); connect(m_oMediator, SIGNAL(enable_undo(bool, bool)), this, SLOT(slot_enable_undo(bool, bool))); KTipDialog::showTip(this, notr("semantik/tips")); } void semantik_win::fit_zoom() { if (m_oCanvas->hasFocus()) { m_oCanvas->fit_zoom(); } else if (m_oDiagramView->hasFocus()) { m_oDiagramView->fit_zoom(); } } void semantik_win::read_config() { KConfigGroup l_oConfig(KGlobal::config(), notr("General Options")); m_oRecentFilesAct->loadEntries(KGlobal::config()->group(notr("Recent Files"))); move(l_oConfig.readEntry(notr("winpos"), QPoint(0, 0))); m_oCanvas->setBackgroundBrush(QColor(l_oConfig.readEntry(notr("bgcolor"), notr("#FFFDE8")))); m_oMediator->m_sOutDir = l_oConfig.readEntry(notr("outdir"), notr("/tmp/")); bind_node::set_var(notr("outdir"), m_oMediator->m_sOutDir); QString l_oGuidString = l_oConfig.readEntry(notr("guid")); if (!l_oGuidString.isEmpty()) { m_oQUuid = QUuid(l_oGuidString); } else { m_oQUuid = QUuid::createUuid(); write_config(); } //QString lang_code(config.readEntry("currentLanguageCode", QVariant(QString())).toString()); //if (lang_code.isEmpty()) lang_code = "en_US"; // null-string are saved as empty-strings //setCurrentLanguage(lang_code); } void semantik_win::write_config() { KConfigGroup l_oConfig(KGlobal::config(), notr("General Options")); m_oRecentFilesAct->saveEntries(KGlobal::config()->group(notr("Recent Files"))); l_oConfig.writeEntry(notr("winpos"), pos()); l_oConfig.writeEntry(notr("outdir"), bind_node::get_var(notr("outdir"))); l_oConfig.writeEntry(notr("guid"), m_oQUuid.toString()); l_oConfig.sync(); } semantik_win::~semantik_win() { } int semantik_win::print_to_file(const KUrl & url, QPair p) { return m_oCanvas->batch_print_map(url, p); } bool semantik_win::slot_save_as() { choose: KUrl l_o = KFileDialog::getSaveUrl(KUrl(notr("kfiledialog:///document")), trUtf8("*.sem|Semantik file (*.sem)"), this, trUtf8("Choose a file name")); if (l_o.path().isEmpty()) return false; if (!l_o.path().endsWith(notr(".sem"))) { l_o = KUrl(l_o.path()+notr(".sem")); } if (m_oMediator->m_sLastSaved != l_o.path()) { if (l_o.isLocalFile() && QFile::exists(l_o.path())) { int mu = KMessageBox::questionYesNo(NULL, //this, trUtf8("The file \"%1\" already exists.\nOverwrite it?").arg(l_o.path()), trUtf8("Overwrite existing file"), KStandardGuiItem::yes(), KStandardGuiItem::no(), notr("OverwriteExistingFile")); if (!mu) goto choose; } } if (m_oMediator->save_file(l_o.path())) { statusBar()->showMessage(trUtf8("Saved '%1'").arg(l_o.path()), 2000); m_oMediator->m_oCurrentUrl = l_o; update_title(); return true; } else { m_oMediator->m_oCurrentUrl = KUrl(); update_title(); } return false; } bool semantik_win::slot_save() { if (m_oMediator->m_sLastSaved.isEmpty()) { return slot_save_as(); } if (m_oMediator->save_file(m_oMediator->m_sLastSaved)) { statusBar()->showMessage(trUtf8("Saved '%1'").arg(m_oMediator->m_sLastSaved), 2000); return true; } return false; } void semantik_win::slot_open() { if (m_oMediator->m_bDirty) { if (!proceed_save()) return; } KUrl l_o = KFileDialog::getOpenUrl(KUrl(notr("kfiledialog:///document")), trUtf8("*.sem *.kdi *.mm *.vym|All Supported Files (*.sem *.kdi *.mm *.vym)"), this, trUtf8("Choose a file name")); if (l_o.isValid() && m_oMediator->open_file(l_o.path())) { m_oMediator->m_oCurrentUrl = l_o; } update_title(); } void semantik_win::update_title() { QString mod; if (m_oMediator->m_bDirty) mod = trUtf8(" [Modified] "); QString txt; if (m_oMediator->m_oCurrentUrl.path().isEmpty()) { txt = trUtf8("Semantik %1").arg(mod); } else { txt = trUtf8("%1 %2 - Semantik").arg(m_oMediator->m_oCurrentUrl.path(), mod); m_oRecentFilesAct->addUrl(m_oMediator->m_oCurrentUrl); // TODO } setWindowTitle(txt); } void semantik_win::slot_properties() { config_dialog l_oGen(this); KConfigGroup l_oSettings(KGlobal::config(), notr("General Options")); l_oGen.m_oConnType->setCurrentIndex(l_oSettings.readEntry(notr("conn"), 0)); l_oGen.m_oReorgType->setCurrentIndex(l_oSettings.readEntry(notr("reorg"), 0)); l_oGen.m_oAutoSave->setValue(l_oSettings.readEntry(notr("auto"), 5)); l_oGen.m_oAutoReorg->setCurrentIndex(l_oSettings.readEntry(notr("autoReorg"), 1)); QString l_o = l_oSettings.readEntry(notr("bgcolor"), notr("#FFFDE8")); l_oGen.m_oColorWidget->setText(l_o); QPalette l_oPalette = l_oGen.m_oColorWidget->palette(); l_oGen.m_oColor = QVariant(l_o).value(); l_oPalette.setBrush(QPalette::Active, QPalette::Button, l_oGen.m_oColor); l_oGen.m_oColorWidget->setPalette(l_oPalette); if (l_oGen.exec() == QDialog::Accepted) { //m_oMediator->m_iConnType = l_oGen.m_oConnType->currentIndex(); //m_oMediator->m_iReorgType = l_oGen.m_oReorgType->currentIndex(); l_oSettings.writeEntry(notr("conn"), m_oMediator->m_iConnType = l_oGen.m_oConnType->currentIndex()); l_oSettings.writeEntry(notr("reorg"), m_oMediator->m_iReorgType = l_oGen.m_oReorgType->currentIndex()); l_oSettings.writeEntry(notr("auto"), m_oMediator->m_iTimerValue = l_oGen.m_oAutoSave->value()); l_oSettings.writeEntry(notr("bgcolor"), l_oGen.m_oColor.name()); l_oSettings.writeEntry(notr("autoReorg"), m_oMediator->m_iAutoReorg = l_oGen.m_oAutoReorg->currentIndex()); m_oMediator->init_timer(); m_oCanvas->setBackgroundBrush(l_oGen.m_oColor); } } bool semantik_win::queryClose() { write_config(); if (!m_oMediator->m_bDirty) return true; return proceed_save(); } bool semantik_win::proceed_save() { QString l_oTitle = m_oMediator->m_sLastSaved; if (l_oTitle.isEmpty()) l_oTitle = trUtf8("Untitled"); int l_o = KMessageBox::warningYesNoCancel(NULL, //this, trUtf8("The document \"%1\" has been modified.\nDo you want to save your changes or discard them?").arg(l_oTitle), trUtf8("Close Document"), KStandardGuiItem::save(), KStandardGuiItem::discard()); switch (l_o) { case KMessageBox::Yes: return slot_save(); case KMessageBox::No: return true; default: return false; } return false; } void semantik_win::slot_recent(const KUrl& i_oBadUrl) { // deep copy or it will crash KUrl i_oUrl = i_oBadUrl; if (i_oUrl.path().isEmpty()) return; if (m_oMediator->m_bDirty) { if (!proceed_save()) return; } if (m_oMediator->open_file(i_oUrl.path())) { m_oMediator->m_oCurrentUrl = i_oUrl; } update_title(); } void semantik_win::slot_message(const QString & i_sMsg, int i_iDur) { statusBar()->showMessage(i_sMsg, i_iDur); } void semantik_win::slot_tip_of_day() { KTipDialog::showTip(this, notr("semantik/tips"), true); } void semantik_win::slot_enable_undo(bool undo, bool redo) { m_oUndoAct->setEnabled(undo); m_oRedoAct->setEnabled(redo); } #include "semantik.moc" semantik-0.9.5/src/semantik.h000664 000000 000000 00000004121 12732552614 016100 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 %: ifndef SEMANTIK_H #define SEMANTIK_H %: inc\ lude "con.\ h" #inc\ lude %: include #include class KRecentFilesAction; class KToolBar; class KAction; class QAction; class QActionGroup; class QListWidget; class KMenu; class QTextEdit; class QCloseEvent; class QTextBrowser; class canvas_view; class image_view; class table_view; class box_view; class vars_view; class text_view; class data_view; class pre_view; class linear_container; class sem_mediator; // THE DOC PROPERTIES HAVE BEEN MOVED INTO THE VARS VIEW (when no item is selected) class semantik_win : public KXmlGuiWindow { Q_OBJECT public: semantik_win(QWidget *i_oParent=0); ~semantik_win(); QUuid m_oQUuid; void read_config(); void write_config(); int print_to_file(const KUrl&, QPair p); canvas_view *m_oCanvas; image_view *m_oImageView; box_view *m_oDiagramView; linear_container *m_oTree; sem_mediator *m_oMediator; vars_view *m_oVarsView; pre_view *m_oPreView; text_view *m_oTextView; data_view *m_oDataView; table_view *m_oTableView; //void update_color_scheme(); KAction *m_oReorgAct; KAction *m_oExportSizeAct; KAction *m_oDocPropsAct; KAction *m_oConfPropsAct; KAction *m_oGenerateAct; KAction *m_oCanvasFitZoom; KAction *m_oUndoAct; KAction *m_oRedoAct; KToolBar *m_oEditToolBar; KToolBar *m_oColorsToolBar; KToolBar *m_oFlagsToolBar; KMenu *m_oToolsMenu; QAction *m_oSelectAct; QAction *m_oSortAct; QAction *m_oScrollAct; QActionGroup *m_oGroup; QActionGroup *m_oFlagGroup; QActionGroup *m_oColorGroup; QAction* m_oCustomColorAct; KRecentFilesAction* m_oRecentFilesAct; // deprecated QString m_sFileName; bool queryClose(); bool proceed_save(); public slots: void update_title(); void fit_zoom(); void slot_open(); bool slot_save(); bool slot_save_as(); void slot_recent(const KUrl &); void slot_enable_undo(bool, bool); void slot_properties(); void slot_generate(); void slot_tip_of_day(); void slot_message(const QString &, int); }; #endif semantik-0.9.5/src/sembind.py000664 000000 000000 00000016024 12732552614 016114 0ustar00rootroot000000 000000 #! /usr/bin/env python # encoding: utf-8 # Thomas Nagy, 2007-2015 from sgmllib import SGMLParser import htmlentitydefs import os, sys, sembind, re protectXML = sembind.protectXML sys.path = [sembind.get_var('template_dir')]+sys.path if not hasattr(sys, "argv"): sys.argv = ['semantik'] #sys.stderr.write(str(sys.argv)) def subst_vars(doc, map): ugh = '-<[{($)}]>-' tmp = doc.replace('%', ugh) m4_re = re.compile('@(\w+)@', re.M) tmp = m4_re.sub(r'%(\1)s', tmp) tmp = tmp % map tmp = tmp.replace(ugh, '%') return tmp def visualize(type, doc): var = 'command_'+type if var in settings: os.popen(settings[var] % doc).read() else: sembind.set_var('preview', doc) def read_properties(code): tmp={} for x in code.split('\n'): if not x: continue if x[0]=="#": continue lst = x.split("=") if len(lst) < 2: continue tmp[lst[0]] = "=".join(lst[1:]) return tmp class TrucProcessor(SGMLParser): def reset(self): self.pieces = [] self.state = "" self.buf = [] self.inli = 0 SGMLParser.reset(self) def unknown_starttag(self, tag, attrs): if tag == 'ul': if self.inli and self.buf: self.pieces.append('\\item ') self.pieces.append(tex_convert(''.join(self.buf))) self.pieces.append('\n') self.pieces.append('\\begin{itemize}\n') elif tag == 'li': self.inli += 1 def unknown_endtag(self, tag): if tag == 'p': self.pieces.append(tex_convert(''.join(self.buf))) self.pieces.append('\n') elif tag == 'li': if self.buf: self.pieces.append('\\item ') self.pieces.append(tex_convert(''.join(self.buf))) self.pieces.append('\n') self.inli -= 1 elif tag == 'ul': self.pieces.append('\\end{itemize}\n') elif tag == 'style': pass else: self.pieces.append(tex_convert(''.join(self.buf))) self.buf = [] def handle_data(self, text): self.buf.append(text) def output(self): return "".join(self.pieces) def parse_string(s): parser = TrucProcessor() parser.feed(s) parser.close() return parser.output() class RichProcessor(SGMLParser): def reset(self): self.pieces = [] self.state = "" self.buf = [] self.inli = 0 SGMLParser.reset(self) def unknown_starttag(self, tag, attrs): if tag == 'ul': self.inli += 1 def unknown_endtag(self, tag): if tag == 'p': self.pieces.extend(self.buf) self.pieces.append('\n') elif tag == 'li': if self.buf: self.pieces.append(' ' * self.inli) self.pieces.extend(self.buf) self.pieces.append('\n') elif tag == 'ul': self.inli -= 1 elif tag == 'style': pass else: self.pieces.extend(self.buf) self.buf = [] def convert_entityref(self, name): return '&%s;' % name def handle_data(self, text): self.buf.append(text) def output(self): return "".join(self.pieces) def clear_html(s): parser = RichProcessor() parser.feed(s) parser.close() return parser.output() def template_dir(): return sembind.get_var('template_dir') #TEMPLATE_DIR = sembind.get_var('template_dir') #FILTER_DIR = sembind.get_var('filter_dir') #GLOBAL_VARS = read_properties(sembind.get_var('hints')) def post_process(txt, defines): nested = 0 nested_lst = range(30) nested_lst[0]=1 lst = txt.split('\n') out = [] def evaluate(txt): negate = 0 ret = 0 if len(txt)>1 and txt[0] == '!': txt = txt[1:] negate = -1 try: num = int(txt) if num: ret=1 except: if txt in defines: if defines[txt]: ret = 1 ret = ret+negate #if ret<0: ret = 1 return ret for x in lst: if x.find('#endif')==0: nested -= 1 elif x.find('#if ')==0: nested += 1 txt = x.replace('#if ', '') nested_lst[nested] = evaluate(txt) #elif x.find('#elif ')==0: # if nested_lst[nested]: # nested_lst[nested] = "skip" # continue # txt = x.replace('#elif ', '') # nested_lst[nested] = evaluate(txt) elif x.find('#ifdef ')==0: nested += 1 txt = x.replace('#ifdef ', '').rstrip() nested_lst[nested] = (txt in defines) elif x.find('#ifndef ')==0: nested += 1 txt = x.replace('#ifndef ', '').rstrip() nested_lst[nested] = not (txt in defines) elif x.find('#else')==0: if nested_lst[nested]: nested_lst[nested]=0 else: nested_lst[nested]=1 else: if nested_lst[nested]: out.append(x) return "\n".join(out) def write_to_file(name, content): if sys.platform.rfind('32') > -1: return file = open(name, 'wb') file.write(content) file.close() def read_file(name): file = open(name, 'r') doc = file.read() file.close() return doc def add_globals(table): GLOBAL_VARS = read_properties(sembind.get_var('hints')) template_name = sembind.get_var('namet').split('/')[-1].replace('.sem.py', '') for x in GLOBAL_VARS: table[x] = GLOBAL_VARS[x] lst = x.split('.') # override for sub-commands if len(lst)>1 and lst[1] == template_name: table[lst[0]] = GLOBAL_VARS[x] def transform(template, outfile, map): doc = read_file(template_dir() + template) doc = subst_vars(doc, settings) doc = post_process(doc, settings) write_to_file(outfile, doc) def debug(x): try: #sys.stderr.write(x.__repr__()) sys.stderr.write("%s\n" % x) except: debug("erreur d'encodage utf8 ? :-/") def protect_tex(s): lst = [] for x in s: if x == '\\': lst.append(r'$\backslash$') elif x == '#': lst.append(r'\#') elif x == '$': lst.append(r'\$') elif x == '%': lst.append(r'\%') elif x == '&': lst.append(r'\&') elif x == '_': lst.append(r'\_') elif x == '{': lst.append(r'\{') elif x == '}': lst.append(r'\}') elif x == '^': lst.append(r'\^{}') elif x == '~': lst.append(r'\~{}') elif x == '<': lst.append('$<$') elif x == '>': lst.append('$>$') else: lst.append(x) return "".join(lst) def compute_hints(x): k = int(x) item = sembind.get_item_by_id(int(x)) if item: m = read_properties(sembind.get_val(item, "hints")) sembind.set_result("diagram_width", m.get('diagram_width', '0')) sembind.set_result("diagram_height", m.get('diagram_height', '0')) class Node(object): def __init__(self, bind): if not bind: debug("error!! node takes a parameter") sys.exit(1) self.ptr = bind self.vars = {} def get_val(self, s): #debug("get_val called %s" % s) if s == "type": ret = sembind.get_val(self.ptr, s) if ret == '3': return 'text' if ret == '4': return 'img' if ret == '5': return 'diag' if ret == '6': return 'table' return ret return sembind.get_val(self.ptr, s) def get_var(self, s): if not self.vars: hints = sembind.get_val(self.ptr, "hints") self.vars = read_properties(hints) return self.vars.get(s, "") def child_count(self): #debug(str(self.ptr)) return sembind.child_count(self.ptr) def child_num(self, num): v = sembind.child_num(self.ptr, num) return Node(v) def num_rows(self): return sembind.num_rows(self.ptr) def num_cols(self): return sembind.num_cols(self.ptr) def get_cell(self, row, col): return sembind.get_cell(self.ptr, row, col) def link_count(self): # FIXME return 0 def link_caption(self, idx): # FIXME return "SEMANTIK: link_caption is missing" def link_location(self, idx): # FIXME return "SEMANTIK: link_location is missing" def Root(): return Node(sembind.instance()) semantik-0.9.5/src/styles.txt000664 000000 000000 00000002720 12732552614 016203 0ustar00rootroot000000 000000 all_latex Do not escape the special characters in latex templates (set all_latex=1) all_latex.beamer Same thing, but only for the beamer template all_latex.pdflatex Same thing, but only for the pdflatex template babel latex language: english (frenchb, ) babel.beamer Same thing, but only for the beamer template babel.pdflatex Same thing, but only for the pdflatex template theme.beamer Warsaw (JuanLesPins, Montpellier, ) command command to launch (%s is the resulting file) command.beamer cd `echo %s | sed s/main.tex//` && ./waf configure && waf --view command.html firefox %s command.odp ooimpress %s command.odt oowriter %s command.pdflatex cd `echo %s | sed s/main.tex//` && ./waf configure && waf --view command.s5 firefox %s doc_author document author doc_author_off turn off the document author (latex) doc_class document class (latex: a4, report, book) doc_company company doc_date document date doc_date_off turn of the document date (latex) doc_place location of the presentation doc_title document title doc_title_off turn off the document title (latex) header_l.pdflatex header left header_c.pdflatex header center (pdflatex) header_r.pdflatex header right header_off.pdflatex footer_c.pdflatex footer center (pdflatex) footer_l.pdflatex footer left (pdflatex) footer_r.pdflatex footer right footer_off.pdflatex turn off the fancy output oolang openoffice.org language (fr_FR) oolang.odp openoffice.org presentation language oolang.odt openoffice.org text language semantik-0.9.5/src/styles_local.txt000664 000000 000000 00000000674 12732552614 017363 0ustar00rootroot000000 000000 exclude_pic exclude the picture exclude_pic.html exclude_pic.pdflatex exclude_table exclude the table exclude_table.html exclude_table.pdflatex picdim.pdflatex picture dimension in pdf files piccaptionstyle.html picture caption picdivstyle.html html div style: style="width: 99px;" picstyle.html html picture style: style="width: 99px;" make_slide.s5 fit the item on one slide skip_slide.s5 do not use this item for generating slides semantik-0.9.5/src/table_dialog.cpp000664 000000 000000 00000003241 12732552614 017230 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "table_dialog.h" table_dialog::table_dialog(QWidget *i_oParent): QDialog(i_oParent) { QGridLayout *l_oGridLayout = new QGridLayout(this); QLabel *l_sLabel; l_sLabel = new QLabel(this); l_sLabel->setText(trUtf8("Rows")); l_oGridLayout->addWidget(l_sLabel, 0, 0, 1, 1); l_sLabel = new QLabel(this); l_sLabel->setText(trUtf8("Columns")); l_oGridLayout->addWidget(l_sLabel, 1, 0, 1, 1); m_oRows = new QSpinBox(this); l_oGridLayout->addWidget(m_oRows, 0, 1, 1, 1); m_oCols = new QSpinBox(this); l_oGridLayout->addWidget(m_oCols, 1, 1, 1, 1); QSpacerItem *spacerItem = new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding); l_oGridLayout->addItem(spacerItem, 2, 1, 1, 1); QDialogButtonBox *l_oButtonBox = new QDialogButtonBox(this); l_oButtonBox->setOrientation(Qt::Horizontal); l_oButtonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok); l_oGridLayout->addWidget(l_oButtonBox, 3, 0, 1, 2); connect(l_oButtonBox, SIGNAL(accepted()), this, SLOT(accept())); connect(l_oButtonBox, SIGNAL(rejected()), this, SLOT(reject())); QSize size(321, 120); size = size.expandedTo(minimumSizeHint()); resize(size); } #include "table_dialog.moc" semantik-0.9.5/src/table_dialog.h000664 000000 000000 00000000450 12732552614 016674 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef TABLE_DIALOG_H #define TABLE_DIALOG_H #include #include class QSpinBox; class QTextEdit; class table_dialog : public QDialog { Q_OBJECT public: table_dialog(QWidget *i_oParent); QSpinBox *m_oRows; QSpinBox *m_oCols; }; #endif semantik-0.9.5/src/table_view.cpp000664 000000 000000 00000020402 12732552614 016741 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include #include #include #include #include #include #include "con.h" #include "table_dialog.h" #include "data_item.h" #include "sem_mediator.h" #include "table_view.h" #include "mem_command.h" numbered_action::numbered_action(QString x, QWidget *y) : QAction(x, y) { } table_view::table_view(QWidget *i_oParent, sem_mediator *i_oControl) : QTableWidget(0, 0, i_oParent) { m_oMediator = i_oControl; m_bFreeze = false; m_oAddRowAct = new numbered_action(trUtf8("Add Row"), this); m_oAddRowAct->setStatusTip(trUtf8("Add a row")); connect(m_oAddRowAct, SIGNAL(triggered()), this, SLOT(add_row())); insertAction(0, m_oAddRowAct); m_oAddColAct = new numbered_action(trUtf8("Add Column"), this); m_oAddColAct->setStatusTip(trUtf8("Add a column")); connect(m_oAddColAct, SIGNAL(triggered()), this, SLOT(add_column())); insertAction(0, m_oAddColAct); m_oRmRowAct = new numbered_action(trUtf8("Remove Row"), this); m_oRmRowAct->setStatusTip(trUtf8("Remove a row")); connect(m_oRmRowAct, SIGNAL(triggered()), this, SLOT(rm_row())); insertAction(0, m_oRmRowAct); m_oRmColAct = new numbered_action(trUtf8("Remove Column"), this); m_oRmColAct->setStatusTip(trUtf8("Remove a column")); connect(m_oRmColAct, SIGNAL(triggered()), this, SLOT(rm_column())); insertAction(0, m_oRmColAct); QAction *m_oClearAct = new QAction(trUtf8("Redimension"), this); m_oClearAct->setStatusTip(trUtf8("Change table dimensions")); connect(m_oClearAct, SIGNAL(triggered()), this, SLOT(resize_table())); insertAction(0, m_oClearAct); QPalette l_oPalette = palette(); l_oPalette.setBrush(QPalette::Inactive, QPalette::Base, QColor(230, 230, 230)); l_oPalette.setBrush(QPalette::Disabled, QPalette::Base, QColor(230, 230, 230)); setPalette(l_oPalette); connect(this, SIGNAL(cellChanged(int, int)), this, SLOT(cell_changed(int, int))); } void table_view::mousePressEvent(QMouseEvent *i_oEv) { if (i_oEv->button() == Qt::RightButton) { bool l_b = currentRow()>=0 && currentColumn()>=0; m_oRmColAct->setEnabled(l_b); m_oRmRowAct->setEnabled(l_b); QTableWidgetItem *t = itemAt(i_oEv->pos()); int i = 0; int j = 0; if (t != NULL) { i = t->row(); j = t->column(); } m_oRmColAct->row = m_oRmRowAct->row = m_oAddRowAct->row = m_oAddColAct->row = i; m_oRmColAct->col = m_oRmRowAct->col = m_oAddRowAct->col = m_oAddColAct->col = j; m_oAddRowAct->setText(QString("%1 (%2)").arg(trUtf8("Add Row"), QString::number(i))); m_oAddColAct->setText(QString("%1 (%2)").arg(trUtf8("Add Column"), QString::number(j))); m_oRmRowAct->setText(QString("%1 (%2)").arg(trUtf8("Remove Row"), QString::number(i))); m_oRmColAct->setText(QString("%1 (%2)").arg(trUtf8("Remove Column"), QString::number(j))); QMenu::exec(actions(), i_oEv->globalPos()); } else { QTableWidget::mousePressEvent(i_oEv); } } void table_view::cell_changed(int i_iRow, int i_iCol) { if (m_bFreeze) return; Q_ASSERT(m_iId != NO_ITEM); QString l_sText; QTableWidgetItem *l_oItem = item(i_iRow, i_iCol); if (l_oItem) l_sText = l_oItem->text(); else l_sText = ""; data_item *l_oData = m_oMediator->m_oItems.value(m_iId); QHash, QString> changed; for (int i=0; i < rowCount(); ++i) { for (int j=0; j < columnCount(); ++j) { changed[QPair(i, j)] = l_oData->m_oTableData[QPair(i, j)]; } } changed[QPair(i_iRow, i_iCol)] = l_sText; mem_table *tmp = new mem_table(m_oMediator); tmp->m_iId = m_iId; tmp->oldNRows = tmp->newNRows = l_oData->m_iNumRows; tmp->oldNCols = tmp->newNCols = l_oData->m_iNumCols; tmp->oldData = l_oData->m_oTableData; tmp->newData = changed; tmp->apply(); } void table_view::add_row() { data_item *l_oData = m_oMediator->m_oItems.value(m_iId); QHash, QString> changed; for (int i=0; i < rowCount() + 1; ++i) { int ii = i; if (ii >= m_oAddRowAct->row) ii++; for (int j=0; j < columnCount(); ++j) { changed[QPair(m_oAddRowAct->row, j)] = ""; changed[QPair(ii, j)] = l_oData->m_oTableData[QPair(i, j)]; } } mem_table *tmp = new mem_table(m_oMediator); tmp->m_iId = m_iId; tmp->oldNRows = l_oData->m_iNumRows; tmp->oldNCols = l_oData->m_iNumCols; tmp->newNRows = rowCount() + 1; tmp->newNCols = columnCount(); tmp->oldData = l_oData->m_oTableData; tmp->newData = changed; tmp->apply(); } void table_view::add_column() { data_item *l_oData = m_oMediator->m_oItems.value(m_iId); QHash, QString> changed; for (int i=0; i < rowCount(); ++i) { for (int j=0; j < columnCount() + 1; ++j) { int jj = j; if (jj >= m_oAddRowAct->col) jj++; changed[QPair(i, m_oAddRowAct->col)] = ""; changed[QPair(i, jj)] = l_oData->m_oTableData[QPair(i, j)]; } } mem_table *tmp = new mem_table(m_oMediator); tmp->m_iId = m_iId; tmp->oldNRows = l_oData->m_iNumRows; tmp->oldNCols = l_oData->m_iNumCols; tmp->newNRows = rowCount(); tmp->newNCols = columnCount() + 1; tmp->oldData = l_oData->m_oTableData; tmp->newData = changed; tmp->apply(); } void table_view::rm_row() { data_item *l_oData = m_oMediator->m_oItems.value(m_iId); QHash, QString> changed; for (int i=0; i < rowCount(); ++i) { int ii = i; if (ii == m_oRmRowAct->row) continue; if (ii > m_oRmRowAct->row) ii--; for (int j=0; j < columnCount(); ++j) { changed[QPair(ii, j)] = l_oData->m_oTableData[QPair(i, j)]; } } mem_table *tmp = new mem_table(m_oMediator); tmp->m_iId = m_iId; tmp->oldNRows = l_oData->m_iNumRows; tmp->oldNCols = l_oData->m_iNumCols; tmp->newNRows = rowCount() - 1; tmp->newNCols = columnCount(); tmp->oldData = l_oData->m_oTableData; tmp->newData = changed; tmp->apply(); } void table_view::rm_column() { data_item *l_oData = m_oMediator->m_oItems.value(m_iId); QHash, QString> changed; for (int i=0; i < rowCount(); ++i) { for (int j=0; j < columnCount(); ++j) { int jj = j; if (jj == m_oRmRowAct->col) continue; if (jj > m_oAddRowAct->col) jj--; changed[QPair(i, jj)] = l_oData->m_oTableData[QPair(i, j)]; } } mem_table *tmp = new mem_table(m_oMediator); tmp->m_iId = m_iId; tmp->oldNRows = l_oData->m_iNumRows; tmp->oldNCols = l_oData->m_iNumCols; tmp->newNRows = rowCount(); tmp->newNCols = columnCount() - 1; tmp->oldData = l_oData->m_oTableData; tmp->newData = changed; tmp->apply(); } void table_view::resize_table() { table_dialog l_oGen(this); l_oGen.m_oRows->setValue(rowCount()); l_oGen.m_oCols->setValue(columnCount()); if (l_oGen.exec() == QDialog::Accepted) { data_item *l_oData = m_oMediator->m_oItems.value(m_iId); mem_table *tmp = new mem_table(m_oMediator); tmp->m_iId = m_iId; tmp->oldNRows = l_oData->m_iNumRows; tmp->oldNCols = l_oData->m_iNumCols; tmp->newNRows = l_oGen.m_oRows->value(); tmp->newNCols = l_oGen.m_oCols->value(); tmp->oldData = tmp->newData = l_oData->m_oTableData; tmp->apply(); } } void table_view::notify_table(int id) { if (m_bFreeze) { return; } m_bFreeze = true; data_item *l_oData = m_oMediator->m_oItems.value(id); if (l_oData->m_iNumRows != rowCount() || l_oData->m_iNumCols != columnCount()) { setRowCount(l_oData->m_iNumRows); setColumnCount(l_oData->m_iNumCols); } QPair t; foreach (t, l_oData->m_oTableData.keys()) { QTableWidgetItem *it = item(t.first, t.second); if (!it) { it = new QTableWidgetItem(); setItem(t.first, t.second, it); } it->setText(l_oData->m_oTableData[t]); } repaint(); m_bFreeze = false; } void table_view::notify_select(const QList& unsel, const QList& sel) { m_bFreeze = true; bool one = (sel.size() == 1); if (one) { m_iId = sel.at(0); data_item *l_oData = m_oMediator->m_oItems.value(m_iId); Q_ASSERT(l_oData!=NULL); setRowCount(l_oData->m_iNumRows); setColumnCount(l_oData->m_iNumCols); for (int i=0; i < rowCount(); ++i) { for (int j=0; j < columnCount(); ++j) { QTableWidgetItem *l_oItem = new QTableWidgetItem(); l_oItem->setText(l_oData->m_oTableData[QPair(i, j)]); setItem(i, j, l_oItem); } } } else { m_iId = NO_ITEM; setRowCount(0); setColumnCount(0); } repaint(); m_bFreeze = false; } #include "table_view.moc" semantik-0.9.5/src/table_view.h000664 000000 000000 00000001604 12732552614 016411 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef TABLE_VIEW_H #define TABLE_VIEW_H #include #in\ clude "con.h" #include #include class numbered_action : public QAction { public: numbered_action(QString, QWidget*); int row; int col; }; class table_view : public QTableWidget { Q_OBJECT public: table_view(QWidget *i_oParent, sem_mediator *i_oControl); sem_mediator *m_oMediator; void mousePressEvent(QMouseEvent *i_oEv); int m_iId; numbered_action *m_oRmRowAct; numbered_action *m_oRmColAct; numbered_action *m_oAddRowAct; numbered_action *m_oAddColAct; bool m_bFreeze; public slots: void rm_row(); void rm_column(); void add_row(); void add_column(); void resize_table(); void cell_changed(int i_iRow, int i_iCol); void notify_select(const QList& unsel, const QList& sel); void notify_table(int id); }; #endif semantik-0.9.5/src/template_entry.cpp000664 000000 000000 00000000144 12732552614 017655 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #include "template_entry.h" template_entry::template_entry() { } semantik-0.9.5/src/template_entry.h000664 000000 000000 00000000365 12732552614 017327 0ustar00rootroot000000 000000 // Thomas Nagy 2007-2015 GPLV3 #ifndef TEMPLATE_ENTRY_H #define TEMPLATE_ENTRY_H #include #include class template_entry // : { public: template_entry(); QString m_sName; QString m_sTip; QString m_sFile; }; #endif semantik-0.9.5/src/templates/000775 000000 000000 00000000000 12732552614 016114 5ustar00rootroot000000 000000 semantik-0.9.5/src/templates/beamer.sem.py000664 000000 000000 00000014352 12732552614 020511 0ustar00rootroot000000 000000 #sem:name: Beamer presentation #sem:tip: Generates a LaTeX presentation using Beamer # Thomas Nagy, 2007-2015 import os, shutil, time, StringIO, sys import getpass outdir = sembind.get_var('outdir')+'/'+sembind.get_var('pname') settings = { 'all_latex': False, 'doc_date':'', 'doc_content':'', 'doc_title':'', 'doc_author':getpass.getuser(), 'doc_place':'Los angeles', 'doc_company':'World Company', 'theme':'Warsaw', 'babel':'english', # frenchb #'doc_tableofcontents_off':'' 'content_title':'Contents', 'doc_title':'', 'doc_title_off':'None', 'doc_date':r'\today', 'doc_date_off':'None', 'doc_author':'', 'doc_author_off':'None', 'uncover_stepwise': '', 'each_subsection_off':'None', 'doc_tableofcontents_off':'None', } add_globals(settings) # do the document in latex ? def tex_convert(s): return s if not settings.get('all_latex', 0): tex_convert = protect_tex try: tm = time.strftime('.%d-%b-%y--%H-%M-%S', time.gmtime(os.stat(outdir).st_mtime)) os.rename(outdir, outdir+tm) except OSError: pass try: os.makedirs(outdir) except OSError: debug('Cannot create folder ' + outdir) # copy the pictures cwd = os.getcwd() os.chdir(sembind.get_var('temp_dir')) pics = {} # map the id to the picture lst = os.listdir('.') for x in lst: if x.startswith('diag-'): key = x.split('.')[0].replace('diag-', '') if x.endswith('.pdf') or not key in pics: pics[key] = x shutil.copy2(x, outdir) os.chdir(cwd) buf = [] out = buf.append def print_slide(node, niv): txt = tex_convert(node.get_val('summary')) if niv == 0: num = node.child_count() out('%-------------------------------------------------------------------\n') out('\\begin{frame}\n') out('\\frametitle{%s}\n\n' % txt) num = node.child_count() if num: out("\\begin{itemize}\n") for i in range(num): print_slide(node.child_num(i), niv+1) out("\\end{itemize}\n") out('\\end{frame}\n') out('%-------------------------------------------------------------------\n') elif niv < 3: if txt: out('\\item %s\n' % txt) num = node.child_count() if num: out("\\begin{itemize}\n") for i in range(num): print_slide(node.child_num(i), niv+1) out("\\end{itemize}\n") elif niv == 3: if txt: out('\\item %s\n' % txt) num = node.child_count() for i in range(num): print_slide(node.child_num(i), niv+1) else: if txt: out('%s %s\n' % ('%', txt)) num = node.child_count() for i in range(num): print_slide(node.child_num(i), niv+1) diagrams_added = set([]) # prevent accidents def print_figure_slides(node, recurse=False): typo = node.get_val('type') if typo in ['table', 'diag', 'img'] and node.get_val("id") not in diagrams_added: diagrams_added.add(node.get_val("id")) # TODO what to do with the text? #if typo == 'text': # y = node.get_val('text') # out(parse_string(y)) txt = tex_convert(node.get_val('summary')) out('%-------------------------------------------------------------------\n') out('\\begin{frame}\n') out('\\frametitle{%s}\n\n' % txt) if typo == 'table': rows = node.num_rows() cols = node.num_cols() if rows>0 and cols>0: caption = node.get_var('caption') if not caption: caption = caption = node.get_val('summary') out('\\begin{table}\n') out('\\begin{center}\n') out('\\begin{tabular}{|%s}' % ('c|'*cols)) out(' \\hline\n') for i in range(rows): for j in range(cols): if i == 0 or j == 0: out('\\textbf{%s}' % tex_convert(node.get_cell(i, j))) else: out('%s' % tex_convert(node.get_cell(i, j))) if j < cols - 1: out(" & ") out(' \\\\ \\hline\n') out('\\end{tabular}\n') out('\\end{center}\n') out('\\caption{%s}\n' % tex_convert(caption)) out('\\end{table}\n') out('\n') elif typo == 'img' or typo == 'diag': id = node.get_val('id') if id in pics: caption = node.get_var('caption') if not caption: caption = caption = node.get_val('summary') restrict = node.get_var("picdim") if not restrict: w = int(node.get_val('pic_w')) restrict = "" if (w > 5*72): restrict = "[width=5in]" if not restrict: restrict = "[width=0.8\\textwidth,height=0.7\\textheight,keepaspectratio]" out('\\begin{figure}[htbp]\n') out(' \\begin{center}\n') out(' \\includegraphics%s{%s}\n' % (restrict, pics[id])) out(' \\caption{\\footnotesize{%s}}\n' % tex_convert(caption)) out('%% %s\n' % protect_tex(node.get_val('pic_location'))) out('%% %s\n' % node.get_val('pic_w')) out('%% %s\n' % node.get_val('pic_h')) out(' \\end{center}\n') out('\\end{figure}\n') out('\\end{frame}\n') out('%-------------------------------------------------------------------\n') num = node.child_count() for i in range(num): print_figure_slides(node.child_num(i)) #print_figure_slides(root, recurse=False) def print_nodes(node, niv): num = node.child_count() for i in range(num): subtree = node.child_num(i) #print_nodes(node.child_num(i), niv+1) sm = tex_convert(subtree.get_val('summary')) num = subtree.child_count() if niv == 0 and num >= 1: out('\\section{%s}\n' % sm) elif niv == 1 and num >= 1: out('\\subsection{%s}\n' % sm) if subtree.child_count() > 0: if int(subtree.get_val('tree_size')) < 16: print_slide(subtree, 0); print_figure_slides(subtree, True) elif niv == 0: print_nodes(subtree, 1) print_figure_slides(subtree) elif niv == 1: print_nodes(subtree, 2) print_figure_slides(subtree) else: print_figure_slides(subtree, True) sys.stderr.write("transforming this map into slides makes kitten cry") # the main document root = Root() if not settings['doc_title']: settings['doc_title'] = root.get_val('summary') print_nodes(root, 0); settings['doc_content'] = "".join(buf) # now write main.tex transform("/beamer/main.tex", outdir+'/main.tex', settings) # data files os.popen('cp -Rf %s %s' % (template_dir()+'/beamer/beamermindist/', outdir)).read() # anciliary files shutil.copy2(template_dir()+'/beamer/wscript', outdir+'/wscript') shutil.copy2(template_dir()+'/waf', outdir+'/waf') os.chmod(outdir+'/waf', 0755) f = open(outdir + '/run.sh', 'w') try: f.write('#! /bin/sh\npython waf configure build --view\n') finally: f.close() os.chmod(outdir + '/run.sh', 0755) # load the preview on main.tex visualize('beamer', outdir+'/main.tex') semantik-0.9.5/src/templates/beamer/000775 000000 000000 00000000000 12732552614 017347 5ustar00rootroot000000 000000 semantik-0.9.5/src/templates/beamer/beamermindist/000775 000000 000000 00000000000 12732552614 022172 5ustar00rootroot000000 000000 semantik-0.9.5/src/templates/beamer/beamermindist/art/000775 000000 000000 00000000000 12732552614 022760 5ustar00rootroot000000 000000 semantik-0.9.5/src/templates/beamer/beamermindist/art/beamericonarticle.20.eps000664 000000 000000 00000041270 12732552614 027365 0ustar00rootroot000000 000000 %!PS-Adobe-3.0 EPSF-3.0 %%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner %%Title: /n/mappazza/home4/algo/tantau/texmf/tex/latex/classes/latex-beamer/beamericonarticle.20.eps %%CreationDate: Wed Oct 29 13:57:41 2003 %%DocumentData: Clean7Bit %%LanguageLevel: 2 %%Pages: 1 %%BoundingBox: 14 14 26 29 %%EndComments %%BeginProlog % Use own dictionary to avoid conflicts 10 dict begin %%EndProlog %%Page: 1 1 % Translate for offset 14.173228 14.173228 translate % Translate to begin of first scanline 0.000000 13.968000 translate 10.944000 -13.968000 scale % Image geometry 152 194 8 % Transformation matrix [ 152 0 0 194 0 0 ] % Strings to hold RGB-samples per scanline /rstr 152 string def /gstr 152 string def /bstr 152 string def {currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} {currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} {currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} true 3 %%BeginData: 16008 ASCII Bytes colorimage JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> pA_/:!8Ym!J,~> pA_/:!8Ym!J,~> pA_/:!8Ym!J,~> pA_,9!8Yp"J,~> pA_,9!8Yp"J,~> pA_,9!8Yp"J,~> pA_)8!8Ys#J,~> pA_)8!8Ys#J,~> pA_)8!8Ys#J,~> pA_&7!8Z!$J,~> pA_&7!8Z!$J,~> pA_&7!8Z!$J,~> pA_#6!8Z$%J,~> pA_#6!8Z$%J,~> pA_#6!8Z$%J,~> pA^u5!8Z'&J,~> pA^u5!8Z'&J,~> pA^u5!8Z'&J,~> pAb$6k5O<;nGN%)!8Z*'J,~> pAb$6k5O<;nGN%)!8Z*'J,~> pAb$6k5=06nFu\$!8Z*'J,~> pAb$6kPjE pAb$6kPjE pAb$6kPX97n+ZP"!8Z-(J,~> pAb$6kl0N=melb%!8Z0)J,~> pAb$6kl0N=melb%!8Z0)J,~> pAb$6kksB8me?Cu!8Z0)J,~> pAb$6l2KW>mJQV#!8Z3*J,~> pAb$6l2KW>mJQV#!8Z3*J,~> pAb$6l29K9mJ$7s!8Z3*J,~> pAb$6lMf`?m/6J!!8Z6+J,~> pAb$6lMf`?m/6J!!8Z6+J,~> pAb$6lMTT:m.^+q!8Z6+J,~> pAb$6li,i@lhpY(!9Et"!8Z9,J,~> pAb$6li,i@lhpY(!9Et"!8Z9,J,~> pAb$6lho];lhC;#!8dOq!8Z9,J,~> pAb$6m/GrAlMUP'!V#1GbQ-JOs*t~> pAb$6m/GrAlMUP'!V#1GbQ-JOs*t~> pAb$6m/5f pAb$6mJc&Bl2:G&s6p$Lq9/ipg&HR~> pAb$6mJc&Bl2:G&s6p$Lq9/ipg&HR~> pAb$6mJPo=l1b)!s5j= pAb$6mf)/Ckkt>%rpBdHq9/ipgAc[~> pAb$6mf)/Ckkt>%rpBdHq9/ipgAc[~> pAb$6mel#>kkFturo!k2q9/ipgAc[~> pAb$6n,D8DkPY5$rU'[Gq9/ipg])d~> pAb$6n,D8DkPY5$rU'[Gq9/ipg])d~> pAb$6n,2,?kP+ktrS[b1q9/ipg])d~> pAb$6nG_AEk5>,#r9aRFq9/iph#Dm~> pAb$6nG_AEk5>,#r9aRFq9/iph#Dm~> pAb$6nGM5@k4ebsr8@Y0q9/iph#Dm~> pAb$6nc%JFjo##"qs4=Bq9/iph>`!~> pAb$6nc%JFjo##"qs4=Bq9/iph>`!~> pAb$6nbh>AjnJYrqqM2'q9/iph>`!~> pAb$6o)@SGjS\o!qWn4Aq9/iphZ&*~> pAb$6o)@SGjS\o!qWn4Aq9/iphZ&*~> pAb$6o).GBjS/PqqV2)&q9/iphZ&*~> pAb$6oD[\Hj8Aeuq pAb$6oD[\Hj8Aeuq pAb$6oDIPCj7iGpq:ku%q9/iphuA3~> pAb$6o`!eIir&\tq!8"?q9/ipi;\<~> pAb$6o`!eIir&\tq!8"?q9/ipi;\<~> pAb$6o_dYDiqN>optPl$q9/ipi;\<~> pAb$6p\k0\^ZPF;pZ_b:q9/ipiW"E~> pAb$6p\k0\^ZPF;pZ_b:q9/ipiW"E~> pAb$6p\Y$Z^ZPF;pX]Dpq9/ipiW"E~> pAb$6p\k0\^ZPF;p?DY9q9/ipir=N~> pAb$6p\k0\^ZPF;p?DY9q9/ipir=N~> pAb$6p\Y$Z^ZPF;p=B;oq9/ipir=N~> pAb$6p\k0\^ZPF;p$)P8q9/ipj8XW~> pAb$6p\k0\^ZPF;p$)P8q9/ipj8XW~> pAb$6p\Y$Y^ZPF;p"'2nq9/ipj8XW~> pAb$6q#1 pAb$6q#1 pAb$6q"t0hmD%f\bk0BbdeV)eh;nTd~> pAb$6q>UEm!:IVaqonZr!9![s!8Zc:J,~> pAb$6q>UEm!:IVaqonZr!9![s!8Zc:J,~> pAb$6q>C9h!:@P`qonZ]!7L\e!8Zc:J,~> pAb$6qYpKm!:IVaqonWp!8mUr!8Zf;J,~> pAb$6qYpKm!:IVaqonWp!8mUr!8Zf;J,~> pAb$6qY^?h!:@P`qonWY!7:Pc!8Zf;J,~> pAb$6qu5OPi;ENMqonTo!8mUr!8Zi pAb$6qu5OPi;ENMqonTo!8mUr!8Zi pAb$6qu#CKi:m0AqonTX!7:Pc!8Zi pAb$6r;PXQi;EKLiQM;Xkl6/~> pAb$6r;PXQi;EKLiQM;Xkl6/~> pAb$6r;>LLi:m-@iQM;Xkl6/~> pAb$6rVkaRi;EHKi622Wl2Q8~> pAb$6rVkaRi;EHKi622Wl2Q8~> pAb$6rVYUMi:m*?i622Wl2Q8~> pAb$6rr1jSi;EEJi622Wl2Q8~> pAb$6rr1jSi;EEJi622Wl2Q8~> pAb$6rqt^Ni:m'>i622Wl2Q8~> pAb$6s8LsTi;EBIi622Wl2Q8~> pAb$6s8LsTi;EBIi622Wl2Q8~> pAb$6s8:gOi:m$=i622Wl2Q8~> pAb$6!<1pTi;E?Hi622Wl2Q8~> pAb$6!<1pTi;E?Hi622Wl2Q8~> pAb$6!;tdOi:m! pAb$6i;MU3pAJ,~> pAb$6i;MU3pAJ,~> pAb$6i;2C+p@R:e!8Zo>J,~> pAb$6iVh^4i;J,~> pAb$6iVh^4i;J,~> pAb$6iVML,i:Qp:!87:o!8Zo>J,~> pAb$6ir.g5i;J,~> pAb$6ir.g5i;J,~> pAb$6iqhU-i:Qm9!87:o!8Zo>J,~> pAb$6j8Ip6i;J,~> pAb$6j8Ip6i;J,~> pAb$6j8.^.i:Qj8!87:o!8Zo>J,~> pAb$6jSe$7i;<J,~> pAb$6jSe$7i;<J,~> pAb$6jSIg/i:Qg7!87:o!8Zo>J,~> pAb$6jo+-8i;<9F!8RLr!8Zo>J,~> pAb$6jo+-8i;<9F!8RLr!8Zo>J,~> pAb$6jndp0i:Qd6!87:o!8Zo>J,~> pAb$6k5F69i;<6E!8RLr!8Zo>J,~> pAb$6k5F69i;<6E!8RLr!8Zo>J,~> pAb$6k5+$1i:Qa5!87:o!8Zo>J,~> pAb$6kPa?:i;<3D!8RLr!8Zo>J,~> pAb$6kPa?:i;<3D!8RLr!8Zo>J,~> pAb$6kPF-2i:Q^4!87:o!8Zo>J,~> pAb$6l2:VVb453&o_JRCr6,/sl2Q8~> pAb$6l2:VVb453&o_JRCr6,/sl2Q8~> pAb$6l1tDQi:$""p@S"I!87:o!8Zo>J,~> pAb$6l2:VPb3Sg!oD/IBr6,/sl2Q8~> pAb$6l2:VPb3Sg!oD/IBr6,/sl2Q8~> pAb$6l1tDKb3SfooC2h6r6,/sl2Q8~> pAb$6lMUb]n]L1mqssR`h#,@rh pAb$6lMUb]n]L1mqssR`h#,@rh pAb$6lM:PUn&jtko^_MPg&0%oh pAb$6li$k]!:e4tq>9^Y!8RLr!8Zo>J,~> pAb$6li$k]!:e4tq>9^Y!8RLr!8Zo>J,~> pAb$6lh^YU!:S(rq=O4I!87:o!8Zo>J,~> pAb$6m/?q]!:e4tqYTdY!8RLr!8Zo>J,~> pAb$6m/?q]!:e4tqYTdY!8RLr!8Zo>J,~> pAb$6m/$_U!:S(rqXj:I!87:o!8Zo>J,~> pAb$6mJ["]!:e4tqtojY!8RLr!8Zo>J,~> pAb$6mJ["]!:e4tqtojY!8RLr!8Zo>J,~> pAb$6mJ?eU!:S(rqt0@I!87:o!8Zo>J,~> pAb$6mf!(]!;FY+r;5pY!8RLr!8Zo>J,~> pAb$6mf!(]!;FY+r;5pY!8RLr!8Zo>J,~> pAb$6meZkU!;#@AjmN'=mdU;1r6,/sl2Q8~> pAb$6n,;2Bi;;pJ,~> pAb$6n,;2Bi;;pJ,~> pAb$6n+tu:i:QF,!87:o!8Zo>J,~> pAb$6nGV;Ci;;m;!8RLr!8Zo>J,~> pAb$6nGV;Ci;;m;!8RLr!8Zo>J,~> pAb$6nG;);i:QC+!87:o!8Zo>J,~> pAb$6nbqDDi;;j:!8RLr!8Zo>J,~> pAb$6nbqDDi;;j:!8RLr!8Zo>J,~> pAb$6nbV2J,~> pAb$6o)7MEi;;g9!8RLr!8Zo>J,~> pAb$6o)7MEi;;g9!8RLr!8Zo>J,~> pAb$6o(q;=i:Q=)!87:o!8Zo>J,~> pAb$6oDRVFi;;d8!8RLr!8Zo>J,~> pAb$6oDRVFi;;d8!8RLr!8Zo>J,~> pAb$6oD7D>i:Q:(!87:o!8Zo>J,~> pAb$6o_m_Gi;;a7!8RLr!8Zo>J,~> pAb$6o_m_Gi;;a7!8RLr!8Zo>J,~> pAb$6o_RM?i:Q7'!87:o!8Zo>J,~> pAb$6p&3hHi;;^6!8RLr!8Zo>J,~> pAb$6p&3hHi;;^6!8RLr!8Zo>J,~> pAb$6p%mV@i:Q4&!87:o!8Zo>J,~> pAb$6pAOX]!;Fb.rp]1K!8RLr!8Zo>J,~> pAb$6pAOX]!;Fb.rp]1K!8RLr!8Zo>J,~> pAb$6pA4FU!;#XIi9pU3l1"c,r6,/sl2Q8~> pAb$6p\j^]!:e4tl1tD8r6,/sl2Q8~> pAb$6p\j^]!:e4tl1tD8r6,/sl2Q8~> pAb$6p\OLU!:S(rl1"c,r6,/sl2Q8~> pAb$6q#0d]!:e4tl1tD8r6,/sl2Q8~> pAb$6q#0d]!:e4tl1tD8r6,/sl2Q8~> pAb$6q"jRU!:S(rl1"c,r6,/sl2Q8~> pAb$6q>Kj]!:e4tl1tD8r6,/sl2Q8~> pAb$6q>Kj]!:e4tl1tD8r6,/sl2Q8~> pAb$6q>0XU!:S(rl1"c,r6,/sl2Q8~> pAb$6qYfp]!:e4tl1tD8r6,/sl2Q8~> pAb$6qYfp]!:e4tl1tD8r6,/sl2Q8~> pAb$6qYK^U!:S(rl1"c,r6,/sl2Q8~> pAb$6qu-!]!:e4tl1tD8r6,/sl2Q8~> pAb$6qu-!]!:e4tl1tD8r6,/sl2Q8~> pAb$6qtfdU!:S(rl1"c,r6,/sl2Q8~> pAb$6r;H']!;Ft4q!dPE!8IFq!8Zo>J,~> pAb$6r;H']!;Ft4q!dPE!8IFq!8Zo>J,~> pAb$6r;,jU!;#jOi9pC-l1"c+r6,/sl2Q8~> pAb$6rVb[Pi;;I/!VkFIbQ-J`s*t~> pAb$6rVb[Pi;;I/!VkFIbQ-J`s*t~> pAb$6rVGIHi:Pst!UeV pAb$6rr(dQi;;I/s7cTKr6,/sl2Q8~> pAb$6rr(dQi;;I/s7cTKr6,/sl2Q8~> pAb$6rqbRIi:Psts6]m>r6,/sl2Q8~> pAb$6s8CmRi;;I/rqHKJr6,/sl2Q8~> pAb$6s8CmRi;;I/rqHKJr6,/sl2Q8~> pAb$6s8([Ji:PstrpBd=r6,/sl2Q8~> pAb$6!<(jRi;;I/rV-BIr6,/sl2Q8~> pAb$6!<(jRi;;I/rV-BIr6,/sl2Q8~> pAb$6!;bXJi:PstrU'[ pAb$6i;DO1i;3BH!8IFq!8Zo>J,~> pAb$6i;DO1i;3BH!8IFq!8Zo>J,~> pAb$6i:l1%i:6a5!8.4n!8Zo>J,~> pAb$6iV_X2i;3?G!8IFq!8Zo>J,~> pAb$6iV_X2i;3?G!8IFq!8Zo>J,~> pAb$6iV2:&i:6^4!8.4n!8Zo>J,~> pAb$6ir%a3i;3J,~> pAb$6ir%a3i;3J,~> pAb$6iqMC'i:6[3!8.4n!8Zo>J,~> pAb$6j8@j4i;39E!8IFq!8Zo>J,~> pAb$6j8@j4i;39E!8IFq!8Zo>J,~> pAb$6j7hL(i:6X2!8.4n!8Zo>J,~> pAb$6jS[s5i;36D!8IFq!8Zo>J,~> pAb$6jS[s5i;36D!8IFq!8Zo>J,~> pAb$6jS.U)i:6U1!8.4n!8Zo>J,~> pAb$6jo"'6i;33C!8IFq!8Zo>J,~> pAb$6jo"'6i;33C!8IFq!8Zo>J,~> pAb$6jnI^*i:6R0!8.4n!8Zo>J,~> pAb$6k5=07i;30B!8IFq!8Zo>J,~> pAb$6k5=07i;30B!8IFq!8Zo>J,~> pAb$6k4dg+i:6O/!8.4n!8Zo>J,~> pAb$6kPX98i;3-A!8IFq!8Zo>J,~> pAb$6kPX98i;3-A!8IFq!8Zo>J,~> pAb$6kP*p,i:6L.!8.4n!8Zo>J,~> pAb$6kksB9i;3*@!8IFq!8Zo>J,~> pAb$6kksB9i;3*@!8IFq!8Zo>J,~> pAb$6kkF$-i:6I-!8.4n!8Zo>J,~> pAb$6l29K:s8(U-p\4aCr6,/sl2Q8~> pAb$6l29K:s8(U*p\4aCr6,/sl2Q8~> pAb$6l1a-.s7+t8p[/%6r6,/sl2Q8~> pAb$6p\Y$`hs^XJ,~> pAb$6p\Y$`hs^XJ,~> pAb$6p\+[Zhs^X:p[nIThXL:-!8.4n!8Zo>J,~> pAb$6p\Y$`hs^XJ,~> pAb$6p\Y$`hs^XJ,~> pAb$6p\+[Zhs^X:q"4OThXL:-!8.4n!8Zo>J,~> pAb$6p\Y$`hs^X:*dhV@l#!8IFq!8Zo>J,~> pAb$6p\Y$`hs^X:*dhV%Yu!8IFq!8Zo>J,~> pAb$6p\+[Zhs^X:q=OUThXL:-!8.4n!8Zo>J,~> pAb$6p\Y$`hs^XJ,~> pAb$6p\Y$`hs^XJ,~> pAb$6p\+[Zhs^X:qXj[ThX1(*!8.4n!8Zo>J,~> pAb$6p\Y$`hs^XJ,~> pAb$6p\Y$`hs^XJ,~> pAb$6p\+[Zhs^X:qt0aThX1(*!8.4n!8Zo>J,~> pAb$6p\Y$`hs^XJ,~> pAb$6p\Y$`hs^XJ,~> pAb$6p\+[Zhs^X:r:KgThX1(*!8.4n!8Zo>J,~> pAb$6nGM5Aq"ik,p\4aCr6,/sl2Q8~> pAb$6nGM5Aq"ik#p\4aCr6,/sl2Q8~> pAb$6nFtl5q!m5+p[/%6r6,/sl2Q8~> pAb$6nbh>Bp\Nb+p\4aCr6,/sl2Q8~> pAb$6nbh>Bp\Nb"p\4aCr6,/sl2Q8~> pAb$6nb:u6p[R,*p[/%6r6,/sl2Q8~> pAb$6o).GCpA3Y*p\4aCr6,/sl2Q8~> pAb$6o).GCpA3Y!p\4aCr6,/sl2Q8~> pAb$6o(V)7p@7#)p[/%6r6,/sl2Q8~> pAb$6oDIPDp%mP+p\4aCr6,/sl2Q8~> pAb$6oDIPDp%mOup\4aCr6,/sl2Q8~> pAb$6oCq28p$po&p[/%6r6,/sl2Q8~> pAb$6o_dYEo_RG*p\4aCr6,/sl2Q8~> pAb$6o_dYEo_RFtp\4aCr6,/sl2Q8~> pAb$6o_7;9o^Uf%p[/%6r6,/sl2Q8~> pAb$6p&*bFoD7>)p\4aCr6,/sl2Q8~> pAb$6p&*bFoD7=sp\4aCr6,/sl2Q8~> pAb$6p%RD:oC:]$p[/%6r6,/sl2Q8~> pAb$6pAEkGo(q5+p\4aCr6,/sl2Q8~> pAb$6pAEkGo(q4rp\4aCr6,/sl2Q8~> pAb$6p@mM;o'tSup[/%6r6,/sl2Q8~> pAb$6p\`tHnbV,*p\4aCr6,/sl2Q8~> pAb$6p\`tHnbV+qp\4aCr6,/sl2Q8~> pAb$6p\3V pAb$6q"t0io\]- pAb$6q"t0io\]- pAb$6q"Fg]o&&s.n_WC%mJto;bQ-J`s*t~> pAb$6q>C9i!;,1J,~> pAb$6q>C9i!;,1J,~> pAb$6q=jp]!:o%:oC:\sp[/%6r6,/sl2Q8~> pAb$6qY^?i!;,1J,~> pAb$6qY^?i!;,1J,~> pAb$6qY1!]!:o%:oC:\sp[/%6r6,/sl2Q8~> pAb$6qu$Ei!;,1J,~> pAb$6qu$Ei!;,1J,~> pAb$6qtL']!:o%:oC:\sp[/%6r6,/sl2Q8~> pAb$6r;?Ki!;,1J,~> pAb$6r;?Ki!;,1J,~> pAb$6r:g-]!:o%:oC:\pp[/%5r6,/sl2Q8~> pAb$6rVZQi!;,1 pAb$6rVZQi!;,1 pAb$6rV-3]!:o%:oC:\pq!J1KfDNhmh pAb$6rqt^OlMBB)q=t!a!8IFq!8Zo>J,~> pAb$6rqt^OlMBAjq=t!a!8IFq!8Zo>J,~> pAb$6rqG@ClLE`gqJ,~> pAb$6s8:gPl2'9*qY:'a!8IFq!8Zo>J,~> pAb$6s8:gPl2'8iqY:'a!8IFq!8Zo>J,~> pAb$6s7bIDl1*WcqX4@K!8%.m!8Zo>J,~> pAb$6!;tdPkka0)qtU-a!8IFq!8Zo>J,~> pAb$6!;tdPkka/hqtU-a!8IFq!8Zo>J,~> pAb$6!;GFDkjdNbqsOFK!8%.m!8Zo>J,~> pAb$6i;;^6hXCC;r:^3Gr6,/sl2Q8~> pAb$6i;;^6hV%i%r:^3Gr6,/sl2Q8~> pAb$6i:Q4&hVA%sr9F@7r6,/sl2Q8~> pAb$6iVVd6hXLL=qtC*Fr6,/sl2Q8~> pAb$6iVVd6hVA))qtC*Fr6,/sl2Q8~> pAb$6iUl:&hV%kqqs+76r6,/sl2Q8~> pAb$6iqqj6hXLO>qY(!Er6,/sl2Q8~> pAb$6iqqj6hVA,*qY(!Er6,/sl2Q8~> pAb$6iq2@&hV%nrqWe.5r6,/sl2Q8~> pAb$6j87p6hXLR?q=amDr6,/sl2Q8~> pAb$6j87p6hVA/+q=amDr6,/sl2Q8~> pAb$6j7MF&hV%qsq pAb$6jSS!6hXCO?q"FdCr6,/sl2Q8~> pAb$6jSS!6hV8,+q"FdCr6,/sl2Q8~> pAb$6jRhL&hUqnsq!.q3r6,/sl2Q8~> pAb$6p\Os_hs^X pAb$6p\Os_hs^X pAb$6p[eIVhsg7-hV%Yh!8%.m!8Zo>J,~> pAb$6p\Os_hs^X pAb$6p\Os_hs^X pAb$6p[eIVhsg7-hV%Yh!8%.m!8Zo>J,~> pAb$6p\Os_hs^X pAb$6p\Os_hs^X pAb$6p[eIVhsg7-hV%Yh!8%.m!8Zo>J,~> pAb$6p\Os_hs^XJ,~> pAb$6p\Os_hs^XJ,~> pAb$6p[eIVhsg:.!:J^spZhh2r6,/sl2Q8~> pAb$6p\Os_hs^XJ,~> pAb$6p\Os_hs^XJ,~> pAb$6p[eIVhsg=/s6easpZhh2r6,/sl2Q8~> pAb$6p\Os_hs^XJ,~> pAb$6p\Os_hs^XJ,~> pAb$6p[eIVhsg@0rpJXrpZhh2r6,/sl2Q8~> pAb$6lhfW:rV575p\+[Br6,/sl2Q8~> pAb$6lhfW:rV571p\+[Br6,/sl2Q8~> pAb$6lh'-*rU/OqpZhh2r6,/sl2Q8~> pAb$6m/,`;r:o.4p\+[Br6,/sl2Q8~> pAb$6m/,`;r:o.0p\+[Br6,/sl2Q8~> pAb$6m.B6+r9iFppZhh2r6,/sl2Q8~> pAb$6mJGi pAb$6mJGi pAb$6mI]?,qsN=opZhh2r6,/sl2Q8~> pAb$6mebr=qY8q.p\+[Br6,/sl2Q8~> pAb$6mebr=qY8q2p\+[Br6,/sl2Q8~> pAb$6me#H-qX34npZhh2r6,/sl2Q8~> pAb$6n,)&>q=rh-p\+[Br6,/sl2Q8~> pAb$6n,)&>q=rh1p\+[Br6,/sl2Q8~> pAb$6n+>Q.q pAb$6nGD/?q"W_,p\+[Br6,/sl2Q8~> pAb$6nGD/?q"W_0p\+[Br6,/sl2Q8~> pAb$6nFYZ/q!R"lpZhh2r6,/sl2Q8~> pAb$6nb_8@p\ pAb$6nb_8@p\ pAb$6natc0p[6nkpZhh2r6,/sl2Q8~> pAb$6p\Oscht.!EqYKp\hVn5'!8IFq!8Zo>J,~> pAb$6p\Oscht.!EqYKp\hWsq1!8IFq!8Zo>J,~> pAb$6p[eIWrUSn:p?pejpZhh2r6,/sl2Q8~> pAb$6p\Os_hs^[=qXsX?iV3'Hg\f7qh pAb$6p\Os_hs^[=qXsX?lhC,Rg\f7qh pAb$6p[eIVhsg[9p$U\ipZhh2r6,/sl2Q8~> pAb$6p\Os_hs^X pAb$6p\Os_hs^X pAb$6p[eIVhs^X9o^:ShpZhh2r6,/sl2Q8~> pAb$6p\Os_hs^X;o_@;!p\+[Br6,/sl2Q8~> pAb$6p\Os_hs^X;o_@;3p\+[Br6,/sl2Q8~> pAb$6p[eIVhs^X7o^:ShpZhh2r6,/sl2Q8~> pAb$6p\Os_hs^X;o_@;!p\+[Br6,/sl2Q8~> pAb$6p\Os_hs^X;o_@;3p\+[Br6,/sl2Q8~> pAb$6p[eIVhs^X7o^:ShpZhh2r6,/sl2Q8~> pAb$6p\Os_hs^X;o_@:rp\+[Br6,/sl2Q8~> pAb$6p\Os_hs^X;o_@;7p\+[Br6,/sl2Q8~> pAb$6p[eIUhs^X7o^:ShpZhh2r6,/sl2Q8~> pAb$6q"k*gpYtiEo)SLVptj]upAitGbQ-J`s*t~> pAb$6q"k*gpYtiEo)SLVptkW:pAitGbQ-J`s*t~> pAb$6q"3M7rpTIHhV%Yh!8%.m!8Zo>J,~> pAb$6q>9+Hn+bbmp\+[Br6,/sl2Q8~> pAb$6q>9+Hn+bc2p\+[Br6,/sl2Q8~> pAb$6q=NV8n*]&cpZhh2r6,/sl2Q8~> pAb$6qYT4Ii:u=+!8IFq!8Zo>J,~> pAb$6qYT4Ii:u=+!8IFq!8Zo>J,~> pAb$6qXi_9i9oUj!8%.m!8Zo>J,~> pAb$6qto=Ji:u:*!8IFq!8Zo>J,~> pAb$6qto=Ji:u:*!8IFq!8Zo>J,~> pAb$6qt/h:i9oRi!8%.m!8Zo>J,~> pAb$6r;5FKi:u7)!8@@p!8Zo>J,~> pAb$6r;5FKi:u7)!8@@p!8Zo>J,~> pAb$6r:Jq;i9oOh!7q(l!8Zo>J,~> pAb$6rVPOLi:u7)!VY7FbQ-J`s*t~> pAb$6rVPOLi:u7)!VY7FbQ-J`s*t~> pAb$6rUf% pAb$6rqkXMi:u7)s7QHHr6,/sl2Q8~> pAb$6rqkXMi:u7)s7QHHr6,/sl2Q8~> pAb$6rq,.=i9oOhs6'I6r6,/sl2Q8~> pAb$6s81aNi:u7)rq6?Gr6,/sl2Q8~> pAb$6s81aNi:u7)rq6?Gr6,/sl2Q8~> pAb$6s7G7>i9oOhroa@5r6,/sl2Q8~> pAb$6!;lQf!;GdNp@A:Xo_@;7qtL'_!8@@p!8Zo>J,~> pAb$6!;lQf!;GdNp@A:Xo_@;7qtL'_!8@@p!8Zo>J,~> pAb$6!;,4>p@%V@q=!J6qs44E!7q(l!8Zo>J,~> pAb$6p\Fm^hs^X;o_@;4r:g-_!8@@p!8Zo>J,~> pAb$6p\Fm^hs^X;o_@;4r:g-_!8@@p!8Zo>J,~> pAb$6p@7&0!:TRJhXLI/r9+.3r6,/sl2Q8~> pAb$6p\Fm^hs^X;o_@;4rV-3_!8@@p!8Zo>J,~> pAb$6p\Fm^hs^X;o_@;4rV-3_!8@@p!8Zo>J,~> pAb$6p@7&0!:TRJhXLL0qre%2r6,/sl2Q8~> pAb$6p\Fm^hs^X;o_@;4rqH9_!8@@p!8Zo>J,~> pAb$6p\Fm^hs^X;o_@;4rqH9_!8@@p!8Zo>J,~> pAb$6p@7&0!:TRJhXLO1qWIq1r6,/sl2Q8~> pAb$6p\Fm^hs^X;o_@;4s7c?_!8@@p!8Zo>J,~> pAb$6p\Fm^hs^X;o_@;4s7c?_!8@@p!8Zo>J,~> pAb$6p@7&0!:TRJhXLR2q<.h0r6,/sl2Q8~> pAb$6p\Fm^hs^X;o_@;4!;H9^!8@@p!8Zo>J,~> pAb$6p\Fm^hs^X;o_@;4!;H9^!8@@p!8Zo>J,~> pAb$6p@7&0!:TRJhXCO2puh_/r6,/sl2Q8~> pAb$6p\FmanFZ5A!;?'[hXgL8!8@@p!8Zo>J,~> pAb$6p\FmanFZ5A!;?'[hXgL8!8@@p!8Zo>J,~> pAb$6jmhj/oBuYIi9p@'!7q(l!8Zo>J,~> pAb$6k5+$2i:ls=!8@@p!8Zo>J,~> pAb$6k5+$2i:ls=!8@@p!8Zo>J,~> pAb$6k4.Bti9U+#!7q(l!8Zo>J,~> pAb$6kPF-3i:lpJ,~> pAb$6kPF-3i:lpJ,~> pAb$6kOIKui9U("!7q(l!8Zo>J,~> pAb$6kka64i:lm;!8@@p!8Zo>J,~> pAb$6kka64i:lm;!8@@p!8Zo>J,~> pAb$6kjdU!i9U%!!7q(l!8Zo>J,~> pAb$6l2'?5i:lj:!8@@p!8Zo>J,~> pAb$6l2'?5i:lj:!8@@p!8Zo>J,~> pAb$6l1*^"i9U!u!7q(l!8Zo>J,~> pAb$6lMBH6i:lg9!8@@p!8Zo>J,~> pAb$6lMBH6i:lg9!8@@p!8Zo>J,~> pAb$6lLEg#i9Tst!7q(l!8Zo>J,~> pAb$6lh]Q7i:ld8!8@@p!8Zo>J,~> pAb$6lh]Q7i:ld8!8@@p!8Zo>J,~> pAb$6lg`p$i9Tps!7q(l!8Zo>J,~> pAb$6m/#Z8i:la7!8@@p!8Zo>J,~> pAb$6m/#Z8i:la7!8@@p!8Zo>J,~> pAb$6m.'$%i9Tmr!7q(l!8Zo>J,~> pAb$6mJ>c9i:l^6!8@@p!8Zo>J,~> pAb$6mJ>c9i:l^6!8@@p!8Zo>J,~> pAb$6mIB-&i9Tjq!7q(l!8Zo>J,~> pAb$6meYl:i:l[5!8@@p!8Zo>J,~> pAb$6meYl:i:l[5!8@@p!8Zo>J,~> pAb$6md]6'i9Tgp!7q(l!8Zo>J,~> pAb$6n+tu;i:lX4!8@@p!8Zo>J,~> pAb$6n+tu;i:lX4!8@@p!8Zo>J,~> pAb$6n+#?(i9Tdo!7q(l!8Zo>J,~> pAb$6nG;)J,~> pAb$6nG;)J,~> pAb$6nF>H)i9Tan!7q(l!8Zo>J,~> pAb$6nbV2=i:lR2!8@@p!8Zo>J,~> pAb$6nbV2=i:lR2!8@@p!8Zo>J,~> pAb$6naYQ*i9T^m!7q(l!8Zo>J,~> pAb$6o(q;>i:lO1!8@@p!8Zo>J,~> pAb$6o(q;>i:lO1!8@@p!8Zo>J,~> pAb$6o'tZ+i9T[l!7q(l!8Zo>J,~> pAb$6oD7D?i:lL0!8@@p!8Zo>J,~> pAb$6oD7D?i:lL0!8@@p!8Zo>J,~> pAb$6oC:c,i9TXk!7q(l!8Zo>J,~> pAb$6o\@49kM#jX!8Zo>J,~> pAb$6o\@49kM#jX!8Zo>J,~> pAb$6o\&0Ti7I/Cr6,/sl2Q8~> pA^,r!8Zo>J,~> pA^,r!8Zo>J,~> pA^,r!8Zo>J,~> pA^,r!8Zo>J,~> pA^,r!8Zo>J,~> pA^,r!8Zo>J,~> pA^,r!8Zo>J,~> pA^,r!8Zo>J,~> pA^,r!8Zo>J,~> pA^,r!8Zo>J,~> pA^,r!8Zo>J,~> pA^,r!8Zo>J,~> pA^,r!8Zo>J,~> pA^,r!8Zo>J,~> pA^,r!8Zo>J,~> pA^-.!:K+OJ,~> pA^-.!:K+OJ,~> pA^-.!:K+OJ,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> JcG!7J,~> %%EndData showpage %%Trailer end %%EOF semantik-0.9.5/src/templates/beamer/beamermindist/art/beamericonarticle.20.pdf000664 000000 000000 00000005616 12732552614 027353 0ustar00rootroot000000 000000 %PDF-1.3 7 0 obj << /Length 340 /Filter /FlateDecode >> stream xڝT;n0 } ]>ԇ{EC;)<%e3b ;H ÖIqx~Ec$u; iVѷ3_H4fŨsD@IeiZ b2ͅ2R!Ž6[~ne {x>zo J<^Db'bH)A΋",}'MHdX!LPQYT-BA`MP3+j }Q,A4K|%f rR,A4* M: S=q=M!sx.2rb;*#s-n.xFw]$endstream endobj 6 0 obj << /Type /Page /Contents 7 0 R /Resources 5 0 R /MediaBox [0 0 10.959 13.948] /Parent 8 0 R >> endobj 2 0 obj << /Type /XObject /Subtype /Form /BBox [0 0 19.925 14.944] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 9 0 R /Length 15 /Filter /FlateDecode >> stream xP(endstream endobj 9 0 obj << /Shading << /Sh << /ShadingType 2 /ColorSpace /DeviceRGB /Domain [0.0 14.94392] /Coords [0 0.0 0 14.94392] /Function << /FunctionType 3 /Domain [0.0 14.94392] /Functions [ << /FunctionType 2 /Domain [0.0 14.94392] /C0 [0.96 0.96 0.9] /C1 [1 1 1] /N 1 >> ] /Bounds [] /Encode [0 1 ] >> /Extend [false false] >> >> /ProcSet [ /PDF ] >> endobj 4 0 obj << /Type /XObject /Subtype /Form /BBox [0 0 1.993 1.993] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 10 0 R /Length 15 /Filter /FlateDecode >> stream xP(endstream endobj 10 0 obj << /Shading << /Sh << /ShadingType 2 /ColorSpace /DeviceRGB /Domain [0.0 1.99252] /Coords [0 0.0 0 1.99252] /Function << /FunctionType 3 /Domain [0.0 1.99252] /Functions [ << /FunctionType 2 /Domain [0.0 1.99252] /C0 [0.9 0.9 0.8] /C1 [0.96 0.96 0.96] /N 1 >> ] /Bounds [] /Encode [0 1 ] >> /Extend [false false] >> >> /ProcSet [ /PDF ] >> endobj 3 0 obj << /Type /XObject /Subtype /Form /BBox [0 0 2.491 3.487] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 11 0 R /Length 15 /Filter /FlateDecode >> stream xP(endstream endobj 11 0 obj << /Shading << /Sh << /ShadingType 2 /ColorSpace /DeviceRGB /Domain [0.0 3.48691] /Coords [0 0.0 0 3.48691] /Function << /FunctionType 3 /Domain [0.0 3.48691] /Functions [ << /FunctionType 2 /Domain [0.0 3.48691] /C0 [0.85 0.95 0.85] /C1 [0.95 0.85 0.85] /N 1 >> << /FunctionType 2 /Domain [0.0 3.48691] /C0 [0.95 0.85 0.85] /C1 [0.85 0.85 0.95] /N 1 >> ] /Bounds [ 1.49438] /Encode [0 1 0 1] >> /Extend [false false] >> >> /ProcSet [ /PDF ] >> endobj 5 0 obj << /XObject << /Fm2 2 0 R /Fm4 4 0 R /Fm3 3 0 R >> /ProcSet [ /PDF ] >> endobj 8 0 obj << /Type /Pages /Count 1 /Kids [6 0 R] >> endobj 12 0 obj << /Type /Catalog /Pages 8 0 R >> endobj 13 0 obj << /Producer (pdfTeX-0.14h) /Creator (TeX) /CreationDate (D:20031027234000) >> endobj xref 0 14 0000000001 65535 f 0000000000 00000 f 0000000537 00000 n 0000001646 00000 n 0000001090 00000 n 0000002309 00000 n 0000000427 00000 n 0000000009 00000 n 0000002396 00000 n 0000000737 00000 n 0000001289 00000 n 0000001845 00000 n 0000002453 00000 n 0000002503 00000 n trailer << /Size 14 /Root 12 0 R /Info 13 0 R >> startxref 2598 %%EOF semantik-0.9.5/src/templates/beamer/beamermindist/art/beamericonarticle.eps000664 000000 000000 00000063753 12732552614 027157 0ustar00rootroot000000 000000 %!PS-Adobe-3.0 EPSF-3.0 %%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner %%Title: /n/mappazza/home4/algo/tantau/texmf/tex/latex/classes/latex-beamer/beamericonarticle.eps %%CreationDate: Thu Oct 16 20:42:27 2003 %%DocumentData: Clean7Bit %%LanguageLevel: 2 %%Pages: 1 %%BoundingBox: 14 14 26 29 %%EndComments %%BeginProlog % Use own dictionary to avoid conflicts 10 dict begin %%EndProlog %%Page: 1 1 % Translate for offset 14.173228 14.173228 translate % Translate to begin of first scanline 0.000000 13.920000 translate 10.980000 -13.920000 scale % Image geometry 183 232 8 % Transformation matrix [ 183 0 0 232 0 0 ] % Strings to hold RGB-samples per scanline /rstr 183 string def /gstr 183 string def /bstr 183 string def {currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} {currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} {currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} true 3 %%BeginData: 25534 ASCII Bytes colorimage JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> o`(:Y_#Jo~> o`(:Y_#Jo~> o`(:Y_#Jo~> o`(9Y!*-l8J,~> o`(9Y!*-l8J,~> o`(9Y!*-l8J,~> o`(6X!*-o9J,~> o`(6X!*-o9J,~> o`(6X!*-o9J,~> o`(3W!*-r:J,~> o`(3W!*-r:J,~> o`(3W!*-r:J,~> o`(0V!*-u;J,~> o`(0V!*-u;J,~> o`(0V!*-u;J,~> o`(-U!*.# o`(-U!*.# o`(-U!*.# o`(*T!*.&=J,~> o`(*T!*.&=J,~> o`(*T!*.&=J,~> o`+afr`/>bm8N%CmSNs'p&G(ma8^Y~> o`+afr`/>bm8N%CmSNs'p&G(ma8^Y~> o`+afr`&VjpJU`^pJ:NYpJ(BUpIb3P!#bJ1!*.)>J,~> o`+afs8Mcjp\X^\p\=LVp\":Qp[\(K!)W=g!*.,?J,~> o`+afs8Mcjp\X^\p\=LVp\":Qp[\(K!)W=g!*.,?J,~> o`+afs82Qbp[n4Lp[%Y=pZ;//pYPYu!(cb_!*.,?J,~> o`+af!<2`jp\X^\p\=LVp\":Qp[\(K!UikW!!$$@s*t~> o`+af!<2`jp\X^\p\=LVp\":Qp[\(K!UikW!!$$@s*t~> o`+af!;lNbp[n4Lp[%Y=pZ;//pYPYu!S9m7!!$$@s*t~> o`+afp\ad_p\FRYp\+@Sp[n4Np[S:P!)W7e!*.2AJ,~> o`+afp\ad_p\FRYp\+@Sp[n4Np[S:P!)W7e!*.2AJ,~> o`+afp\4FSp[IqDpZ_G6pYtr(pY,Z!!(c\]!*.2AJ,~> o`+afq#'m`p\FRYp\+@Sp[n4Np[S7O!)W4d!*.5BJ,~> o`+afq#'m`p\FRYp\+@Sp[n4Np[S7O!)W4d!*.5BJ,~> o`+afq"OOTp[IqDpZ_G6pYtr(pY,Vu!(cY\!*.5BJ,~> o`+afq>C!ap\FRYp\+@Sp[n4Np[S4N!)WOm!#>8/!*.8CJ,~> o`+afq>C!ap\FRYp\+@Sp[n4Np[S4N!)WOm!#>8/!*.8CJ,~> o`+afq=jXUp[IqDpZ_G6pYtr(pY,St!(cte!"nu+!*.8CJ,~> o`+afqY^*bp\FRYp\+@Sp[n4Np[S1M!)WOms#p,W!*.;DJ,~> o`+afqY^*bp\FRYp\+@Sp[n4Np[S1M!)WOms#p,W!*.;DJ,~> o`+afqY0aVp[IqDpZ_G6pYtr(pY,Ps!(ctes"X9K!*.;DJ,~> o`+afqu$3cp\FRYp\+@Sp[n4Np[S.L!)WOm!^*hPp](:ocMrC~> o`+afqu$3cp\FRYp\+@Sp[n4Np[S.L!)WOm!^*hPp](:ocMrC~> o`+afqtKjWp[IqDpZ_G6pYtr(pY,Mr!(cte!\]Kcp](:ocMrC~> o`+afr;? o`+afr;? o`+afr:fsXp[IqDpZ_G6pYtr(pY,Jq!(cte""oFe0),DH o`+afrVZEep\FRYp\+@Sp[n4Np[S(J!)WOm!'C1b!'BrU!*.DGJ,~> o`+afrVZEep\FRYp\+@Sp[n4Np[S(J!)WOm!'C1b!'BrU!*.DGJ,~> o`+afrV-'Yp[IqDpZ_G6pYtr(pY,Gp!(cte!%e,%!%dmF!*.DGJ,~> o`+afrquNfp\FRYp\+@Sp[n4Np[S%I!)WOm!':(]!'9lT!*.GHJ,~> o`+afrquNfp\FRYp\+@Sp[n4Np[S%I!)WOm!':(]!'9lT!*.GHJ,~> o`+afrqH0Zp[IqDpZ_G6pYtr(pY,Do!(Znd!%Rqp!%RaD!*.GHJ,~> o`+afs8;Wgp\FRYp\+@Sp[n4Np[S%I!U`e]!!#(XX8k o`+afs8;Wgp\FRYp\+@Sp[n4Np[S%I!U`e]!!#(XX8k o`+afs7c9[p[IqDpZ_G6pYtr(pY,Do!RjR9!!"GFFoWrc!!$$Is*t~> o`+af!;uTgp\FRYp\+@Sp[n4Np[S%Is6]k`qZ$UVql0WVp](:oe,Op~> o`+af!;uTgp\FRYp\+@Sp[n4Np[S%Is6]k`qZ$UVql0WVp](:oe,Op~> o`+af!;H6[p[IqDpZ_G6pYtr(pY,Dos3gs o`+afp\X^\p\=LVp\":Qp[\(Kq!\4M!)WOm!''hQ!''`R!*.PKJ,~> o`+afp\X^\p\=LVp\":Qp[\(Kq!\4M!)WOm!''hQ!''`R!*.PKJ,~> o`+afp[n4Lp[%Y=pZ;//pYPYupt,Mo!(Znd!$h>S!$h7=!*.PKJ,~> o`+afq"sg]p\=LVp\":Qp[\(Kq!\1L!)WOm!&s_M!&sZQ!*.SLJ,~> o`+afq"sg]p\=LVp\":Qp[\(Kq!\1L!)WOm!&s_M!&sZQ!*.SLJ,~> o`+afq"4=Mp[%Y=pZ;//pYPYupt,Jn!(Znd!$V/J!$V+;!*.SLJ,~> o`+afq>9p^p\=LVp\":Qp[\(Kq!\.K!)WOm!&jVH!&jTP!*.VMJ,~> o`+afq>9p^p\=LVp\":Qp[\(Kq!\.K!)WOm!&jVH!&jTP!*.VMJ,~> o`+afq=OFNp[%Y=pZ;//pYPYupt,Gm!(Znd!$Cu@!$Ct9!*.VMJ,~> o`+afqYU$_p\=LVp\":Qp[\(Kq!\+J!)WOm!&jSE!&jTP!*.YNJ,~> o`+afqYU$_p\=LVp\":Qp[\(Kq!\+J!)WOm!&jSE!&jTP!*.YNJ,~> o`+afqXjOOp[%Y=pZ;//pYPYupt,Dl!(Znd!$1f7!$1h7!*.YNJ,~> o`+afqtp-`p\=LVp\":Qp[\(Kq!\(I!)WOm!&aJ@!&aNO!*.\OJ,~> o`+afqtp-`p\=LVp\":Qp[\(Kq!\(I!)WOm!&aJ@!&aNO!*.\OJ,~> o`+afqt0XPp[%Y=pZ;//pYPYupt,Ak!(Znd!#tW.!#t\5!*.\OJ,~> o`+afr;6 o`+afr;6 o`+afr:KgSs/#IcpS7JVpRq8QpR_/Nq3q@@qZ$U6ogo-$p](:og&HR~> o`+afrVQBcZ@;j)qZ$UPoU,\8p](:ogAc[~> o`+afrVQBcZ@;j)qZ$UPoU,\8p](:ogAc[~> o`+afrUfmSZ@;j)qZ$U4oKrTpp](:ogAc[~> o`+afrqlHcZ@;j)qZ$UOo9KA3p](:og])d~> o`+afrqlHcZ@;j)qZ$UOo9KA3p](:og])d~> o`+afrq,sSZ@;j)qZ$U1o/m!ep](:og])d~> o`+afs82Qd!;NjL!%[pH!&F,1!&F o`+afs82Qd!;NjL!%[pH!&F,1!&F o`+afs7H'T!:7"@!%[pH!#+o`!#,,-!*.hSJ,~> o`+af!;lNds7imL!%[pH!&=#-!&=6K!*.kTJ,~> o`+af!;lNds7imL!%[pH!&=#-!&=6K!*.kTJ,~> o`+af!;-$Ts6R%@!%[pH!"n`W!"nu+!*.kTJ,~> o`+afp\Fg`Z@;j)qZ$UMn;mW(p](:ohZ&*~> o`+afp\Fg`Z@;j)qZ$UMn;mW(p](:ohZ&*~> o`+afp[J1KZ@;j)qZ$U,n14PMp](:ohZ&*~> o`+afq"am`Z@;j)qZ$UMmu@B%p](:ohuA3~> o`+afq"am`Z@;j)qZ$UMmu@B%p](:ohuA3~> o`+afq!e7KZ@;j)qZ$U*mj8#Dp](:ohuA3~> o`+afq>'s`r2B"\mAB o`+afq>'s`r2B"\mAB o`+afq=+=Kr1s(^pS%>SpRh2Opmq/Kr0dUBqZ$U(mN2E:p](:oi;\<~> o`+afqYBm\p\+@Sp[n4Np[S%Ip[7qF!)NIl!&!Yq!&"$H!*/"XJ,~> o`+afqYBm\p\+@Sp[n4Np[S%Ip[7qF!)NIl!&!Yq!&"$H!*/"XJ,~> o`+afqXF7GpZ_G6pYtr(pY,DopXB#d!(Qhc!"&$1!"&E#!*/"XJ,~> o`+afqt^!]p\+@Sp[n4Np[S%Ip[7nE!)M>L!*/%YJ,~> o`+afqt^!]p\+@Sp[n4Np[S%Ip[7nE!)M>L!*/%YJ,~> o`+afqsa@HpZ_G6pYtr(pY,DopXAuc!(P]C!*/%YJ,~> o`+afr;$*^p\+@Sp[n4Np[S%Ip[7kD!)M;K!*/(ZJ,~> o`+afr;$*^p\+@Sp[n4Np[S%Ip[7kD!)M;K!*/(ZJ,~> o`+afr:'IIpZ_G6pYtr(pY,DopXArb!(PZB!*/(ZJ,~> o`+afrV?3_p\+@Sp[n4Np[S%Ip[7hC!)M8Jj8XW~> o`+afrV?3_p\+@Sp[n4Np[S%Ip[7hC!)M8Jj8XW~> o`+afrUBRJpZ_G6pYtr(pY,DopXAoa!(PWAj8XW~> o`+afrqZ<`p\+@Sp[n4Np[S%Ip[7eB!)M8Jj8XW~> o`+afrqZ<`p\+@Sp[n4Np[S%Ip[7eB!)M8Jj8XW~> o`+afrp][KpZ_G6pYtr(pY,DopXAl`!(>K?j8XW~> o`+afs7uEap\+@Sp[n4Np[S%Ip[7eB!UEP7!9=*0~> o`+afs7uEap\+@Sp[n4Np[S%Ip[7eB!UEP7!9=*0~> o`+afs7#dLpZ_G6pYtr(pY,DopXAl`!R*sb!9=*0~> o`+af!;ZBap\+@Sp[n4Np[S%Ip[7eBs6BY\f`:(4J,~> o`+af!;ZBap\+@Sp[n4Np[S%Ip[7eBs6BY\f`:(4J,~> o`+af!:]aLpZ_G6pYtr(pY,DopXAl`s3(I2f`:(4J,~> o`+afp\=LVp\":Qp[\(Kq![tFp[%nF!)M8Jj8XW~> o`+afp\=LVp\":Qp[\(Kq![tFp[%nF!)M8Jj8XW~> o`+afp[%Y=pZ;//pYPYupt,8hpX&o`!(>K?j8XW~> o`+afq"XUWp\":Qp[\(Kq![tFp[%Y?pZ_G9q<.SSj8XW~> o`+afq"XUWp\":Qp[\(Kq![tFp[%Y?pZ_G9q<.SSj8XW~> o`+afq!@b>pZ;//pYPYupt,8hpX&ZYpW3*Jq8)n-j8XW~> o`+afq=s^Xp\":Qp[\(Kq![tFp[%Y?pZ_G9puhJRj8XW~> o`+afq=s^Xp\":Qp[\(Kq![tFp[%Y?pZ_G9puhJRj8XW~> o`+afq<[k?pZ;//pYPYupt,8hpX&ZYpW3*Jpqce,j8XW~> o`+afqY9gYp\":Qp[\(Kq![tFp[%Y?pZ_G9pZMAQj8XW~> o`+afqY9gYp\":Qp[\(Kq![tFp[%Y?pZ_G9pZMAQj8XW~> o`+afqX!t@pZ;//pYPYupt,8hpX&ZYpW3*JpVH\+j8XW~> o`+afqtTpZp\":Qp[\(Kq![tFp[%Y?pZ_G9pZDPfRUJ,~> o`+afqtTpZp\":Qp[\(Kq![tFp[%Y?pZ_G9pZDPfRUJ,~> o`+afqs=(ApZ;//pYPYupt,8hpX&ZYpW3*JpV?jDq>fRUJ,~> o`+afr:p$[p\":Qp[\(Kq![tFp[%Y?pZ_G9pZMSfRUJ,~> o`+afr:p$[p\":Qp[\(Kq![tFp[%Y?pZ_G9pZMSfRUJ,~> o`+afr9X1BpZ;//pYPYupt,8hpX&ZYpW3*JpVHmDq>fRUJ,~> o`+afrV6-\p\":Qp[\(Kq![tFp[%Y?pZ_G9pZMP;q>fRUJ,~> o`+afrV6-\p\":Qp[\(Kq![tFp[%Y?pZ_G9pZMP;q>fRUJ,~> o`+afrTs:CpZ;//pYPYupt,8hpX&ZYpW3*JpVHjCq>fRUJ,~> o`+afrqQ6]p\":Qp[\(Kq![tFp[%Y?pZ_G9pZMM:q>fRUJ,~> o`+afrqQ6]p\":Qp[\(Kq![tFp[%Y?pZ_G9pZMM:q>fRUJ,~> o`+afrp9CDpZ;//pYPYupt,8hpX&ZYpW3*JpVHgBq>fRUJ,~> o`+afs7l?^p\":Qp[\(Kq![tFp[%Y?pZ_G9pZMJ9q>fRUJ,~> o`+afs7l?^p\":Qp[\(Kq![tFp[%Y?pZ_G9pZMJ9q>fRUJ,~> o`+afs6TLEpZ;//pYPYupt,8hpX&ZYpW3*JpVHdAq>fRUJ,~> o`+af!;Q<^p\":Qp[\(Kq![tFp[%Y?pZ_G9pZMG8q>fRUJ,~> o`+af!;Q<^p\":Qp[\(Kq![tFp[%Y?pZ_G9pZMG8q>fRUJ,~> o`+af!:9IEpZ;//pYPYupt,8hpX&ZYpW3*JpVHa@q>fRUJ,~> o`+afp\+@Sq"+R;mC2MlmBuet!mg,qpZVA7qW7PRj8XW~> o`+afp\+@Sq"+R;mC2MlmBuet!mg,qpZVA7qW7PRj8XW~> o`+afpZ_G6pu2:rpTXCqpoa@npT4+hqPaP,aN4+ppVH^?q>fRUJ,~> o`+afq"FITp[eHp^R5,0l1aE9kP=69!9=*0~> o`+afq"FITp[eHp^R5,0l1aE9kP=69!9=*0~> o`+afq!%P7pYl1W^R5,%aS3[J_>1hA!9=*0~> o`+afq=aRUp[eLW\%e=2[.ieYkP408!9=*0~> o`+afq=aRUp[eLW\%e=2[.ieYkP408!9=*0~> o`+afq<@Y8pYl51YeQS+WV=C+_>(b@!9=*0~> o`+afqY'[Vp[nLV!4T_2!4;ObpZM;4q>fRUJ,~> o`+afqY'[Vp[nLV!4T_2!4;ObpZM;4q>fRUJ,~> o`+afqW[b9pYu50!3j5+!3#\3pVHUfRUJ,~> o`+afqtBdWp[nIU!4T_2!4;RcpZM;4!9EtVj8XW~> o`+afqtBdWp[nIU!4T_2!4;RcpZM;4!9EtVj8XW~> o`+afqs!k:pYu2/!3j5+!3#_4pVHU o`+afr:]mXp[nFT!4T_2!4;UdpZM;4s5a"Vj8XW~> o`+afr:]mXp[nFT!4T_2!4;UdpZM;4s5a"Vj8XW~> o`+afr9 o`+afrV$!Yp[nCS!4T_2!4;XepZM;4roEnUj8XW~> o`+afrV$!Yp[nCS!4T_2!4;XepZM;4roEnUj8XW~> o`+afrTX( o`+afrq?*Zp[n@R!7g_Nm^DMjo<\MCr93nfRUJ,~> o`+afrq?*Zp[n@R!7g_Nm^DMjo<\MCr93nfRUJ,~> o`+afros1=pYu),!6>)CpTO@ppT=1kpT!terMT_*r5JEHpV-U;q>fRUJ,~> o`+afs7Z3[p[n4Np[S%Ip[7eBpZqS6q>fRUJ,~> o`+afs7Z3[p[n4Np[S%Ip[7eBpZqS6q>fRUJ,~> o`+afs69:>pYtr(pY,DopXAl`pWWBQpVlmCpV-R:q>fRUJ,~> o`+af!;?0[p[n4Np[S%Ip[7eBpZqSfRUJ,~> o`+af!;?0[p[n4Np[S%Ip[7eBpZqSfRUJ,~> o`+af!9s7>pYtr(pY,DopXAl`pWWBQpVlmCpV-O9q>fRUJ,~> o`+afp\":Qp[\(Kq![tFp[%Y?pZ_G9pZM;4qW.JQj8XW~> o`+afp\":Qp[\(Kq![tFp[%Y?pZ_G9pZM;4qW.JQj8XW~> o`+afpZ;//pYPYupt,8hpX&ZYpW3*JpVHU o`+afq"=CRp[\(Kq![tFp[%Y?pZ_G9pZM;4q;hAPj8XW~> o`+afq"=CRp[\(Kq![tFp[%Y?pZ_G9pZM;4q;hAPj8XW~> o`+afpuV80pYPYupt,8hpX&ZYpW3*JpVHU o`+afq=XLSp[\(Kq![tFp[%Y?pZ_G9pZM;4puM8Oj8XW~> o`+afq=XLSp[\(Kq![tFp[%Y?pZ_G9pZM;4puM8Oj8XW~> o`+afq;qA1pYPYupt,8hpX&ZYpW3*JpVHU o`+afqXsUTp[\(Kq![tFp[%Y?pZ_G9pZM;4pZ2/Nj8XW~> o`+afqXsUTp[\(Kq![tFp[%Y?pZ_G9pZM;4pZ2/Nj8XW~> o`+afqW7J2pYPYupt,8hpX&ZYpW3*JpVHU o`+afqt9^Up[\(Kq![tFp[%Y?pZ_G9pZM;4pZ)>6q>fRUJ,~> o`+afqt9^Up[\(Kq![tFp[%Y?pZ_G9pZM;4pZ)>6q>fRUJ,~> o`+afqrRS3pYPYupt,8hpX&ZYpW3*JpVHUfRUJ,~> o`+afr:TgVp[\(Kq![tFp[%Y?pZ_G9pZM;4pZ2A6q>fRUJ,~> o`+afr:TgVp[\(Kq![tFp[%Y?pZ_G9pZM;4pZ2A6q>fRUJ,~> o`+afr8m\4pYPYupt,8hpX&ZYpW3*JpVHUfRUJ,~> o`+afrUopWp[\(Kq![tFp[%Y?pZ_G9pZM;4pZ2>5q>fRUJ,~> o`+afrUopWp[\(Kq![tFp[%Y?pZ_G9pZM;4pZ2>5q>fRUJ,~> o`+afrT3e5pYPYupt,8hpX&ZYpW3*JpVHUfRUJ,~> o`+afrq6$Xp[\4O!4T_2!42UdpZ;/1rSmYRj8XW~> o`+afrq6$Xp[\4O!4T_2!42UdpZ;/1rSmYRj8XW~> o`+afroNn6pYPf$!3a/*!2ob2pV-C5rO2P&j8XW~> o`+afs7Q-Yp[\1N!4T_2!42XepZ;/1r8RPQj8XW~> o`+afs7Q-Yp[\1N!4T_2!42XepZ;/1r8RPQj8XW~> o`+afs5j"7pYPc#!3a/*!2oe3pV-C5r3lG%j8XW~> o`+af!;6*Yp[\.M!4T_2!42[fpZ;/1qr7GPj8XW~> o`+af!;6*Yp[\.M!4T_2!42[fpZ;/1qr7GPj8XW~> o`+af!9Nt7pYP`"!3a/*!2oh4pV-C5qmQ>$j8XW~> o`+afp[n4Nq!e?n^R5/0kNDU$pZ221q>fRUJ,~> o`+afp[n4Nq!e?n^R5/0kNDU$pZ221q>fRUJ,~> o`+afpYtr(pt>_O^R5/$_85l[pU^40q>fRUJ,~> o`+afq"4=Op[J6l^R5,/kP+*4jS@g3!9=*0~> o`+afq"4=Op[J6l^R5,/kP+*4jS@g3!9=*0~> o`+afpu;&)pY#VM^R5,#_=t\<](rf2!9=*0~> o`+afq=OFPp[J:Q[_J41ZhNSUjS7a2!9=*0~> o`+afq=OFPp[J:Q[_J41ZhNSUjS7a2!9=*0~> o`+afq;V/*pY#Z"Y.pA)Vt[q"](i`1!9=*0~> o`+afqXjOQp[S:P!4KY1!42I^pZ2).q>fRUJ,~> o`+afqXjOQp[S:P!4KY1!42I^pZ2).q>fRUJ,~> o`+afqVq8+pY,Z!!3X))!2fP*pU^+-q>fRUJ,~> o`+afqt0XRp[S%Ip[7eBpZqSfRUJ,~> o`+afqt0XRp[S%Ip[7eBpZqSfRUJ,~> o`+afqr7A,pY,DopXAl`pWWBQpVlmCpV-C5pU1(.q>fRUJ,~> o`+afr:KaSp[S%Ip[7eBpZqSfRUJ,~> o`+afr:KaSp[S%Ip[7eBpZqSfRUJ,~> o`+afr8RJ-pY,DopXAl`pWWBQpVlmCpV-C5pU:+.q>fRUJ,~> o`+afrUfjTp[S%Ip[7eBpZqSfRUJ,~> o`+afrUfjTp[S%Ip[7eBpZqSfRUJ,~> o`+afrSmS.pY,DopXAl`pWWBQpVlmCpV-C5pU:(-q>fRUJ,~> o`+afrq,sUp[S%Ip[7eBpZqSfRUJ,~> o`+afrq,sUp[S%Ip[7eBpZqSfRUJ,~> o`+afro3\/pY,DopXAl`pWWBQpVlmCpV-C5pU:%,q>fRUJ,~> o`+afs7H'Vp[S%Ip[7eBpZqSfRUJ,~> o`+afs7H'Vp[S%Ip[7eBpZqSfRUJ,~> o`+afs5Ne0pY,DopXAl`pWWBQpVlmCpV-C5pU:"+q>fRUJ,~> o`+af!;-$Vp[S%Ip[7eBpZqSfRUJ,~> o`+af!;-$Vp[S%Ip[7eBpZqSfRUJ,~> o`+af!93b0pY,DopXAl`pWWBQpVlmCpV-C5pU9t*q>fRUJ,~> o`+afp[\(Kq![tFp[%Y?pZ_G9pZM;4pZ2).qVh8Nj8XW~> o`+afp[\(Kq![tFp[%Y?pZ_G9pZM;4pZ2).qVh8Nj8XW~> o`+afpYPYupt,8hpX&ZYpW3*JpVHU o`+afq""1Lq![tFp[%Y?pZ_G9pZM;4pZ2).q;M/Mj8XW~> o`+afq""1Lq![tFp[%Y?pZ_G9pZM;4pZ2).q;M/Mj8XW~> o`+afptkc!pt,8hpX&ZYpW3*JpVHU o`+afq==:Mq![tFp[%Y?pZ_G9pZM;4pZ2).pu2&Lj8XW~> o`+afq==:Mq![tFp[%Y?pZ_G9pZM;4pZ2).pu2&Lj8XW~> o`+afq;1l"pt,8hpX&ZYpW3*JpVHU o`+afqXXCNq![tFp[%Y?pZ_G9pZM;4pZ2).pYkrKj8XW~> o`+afqXXCNq![tFp[%Y?pZ_G9pZM;4pZ2).pYkrKj8XW~> o`+afqVLu#pt,8hpX&ZYpW3*JpVHU o`+afqssLOq![tFp[%Y?pZ_G9pZM;4pZ2).pYc,0q>fRUJ,~> o`+afqssLOq![tFp[%Y?pZ_G9pZM;4pZ2).pYc,0q>fRUJ,~> o`+afqqh)$pt,8hpX&ZYpW3*JpVHUfRUJ,~> o`+afr:9UPq![tFp[%Y?pZ_G9pZM;4pZ2).pYl/0q>fRUJ,~> o`+afr:9UPq![tFp[%Y?pZ_G9pZM;4pZ2).pYl/0q>fRUJ,~> o`+afr8.2%pt,8hpX&ZYpW3*JpVHUfRUJ,~> o`+afrUT^Qq![tFp[%Y?pZ_G9pZM;4pZ2).pYl,/q>fRUJ,~> o`+afrUT^Qq![tFp[%Y?pZ_G9pZM;4pZ2).pYl,/q>fRUJ,~> o`+afrSI;&pt,8hpX&ZYpW3*JpVHUfRUJ,~> o`+afrpogRq![tFp[%Y?pZ_G9pZM;4pZ2).pYl).q>fRUJ,~> o`+afrpogRq![tFp[%Y?pZ_G9pZM;4pZ2).pYl).q>fRUJ,~> o`+afrndD'pt,8hpX&ZYpW3*JpVHUfRUJ,~> o`+afs75pSq![tFp[%Y?pZ_G9pZM;4pZ2).pYl&-q>fRUJ,~> o`+afs75pSq![tFp[%Y?pZ_G9pZM;4pZ2).pYl&-q>fRUJ,~> o`+afs5*M(pt,8hpX&ZYpW3*JpVHUfRUJ,~> o`+af!:omSq![tFp[%Y?pZ_G9pZM;4pZ2).pYl#,q>fRUJ,~> o`+af!:omSq![tFp[%Y?pZ_G9pZM;4pZ2).pYl#,q>fRUJ,~> o`+af!8dJ(pt,8hpX&ZYpW3*JpVHUfRUJ,~> o`+afp[S%Ip[7eBpZqS o`+afp[S%Ip[7eBpZqS o`+afpY,DopXAl`pWWBQpVlmCpV-C5pU9h&qQK_qj8XW~> o`+afq!n.Jp[7eBpZqSf0fJpq;;#Kj8XW~> o`+afq!n.Jp[7eBpZqSf0B2lq;;#Kj8XW~> o`+afptGMppXAl`pWWBQpVm-Jf=_$fq60Vpj8XW~> o`+afq=4COf o`+afq=4COf o`+afq:bbuf o`+afqXOIOffRUJ,~> o`+afqXOIOffRUJ,~> o`+afqV(huffRUJ,~> o`+afqsjOOf o`+afqsjOOf o`+afqqCnuf o`+afr:0UOf o`+afr:0UOf o`+afr7^tuf o`+afrUK[OffRUJ,~> o`+afrUK[OffRUJ,~> o`+afrS%%uffRUJ,~> o`+afrpfdP!:JIFqWR_;f3%k+r8.8Mj8XW~> o`+afrpfdP!:JIFqWR_;f0B)gr8.8Mj8XW~> o`+afrn@/!!7TQ+qSi6Gf;JGJr2f_pj8XW~> o`+afs7,mQs6eLFqrme;f3A+/qqh/Lj8XW~> o`+afs7,mQs6eLFqrme;f0B,hqqh/Lj8XW~> o`+afs4[8"s3oT+qo/ o`+af!:fjQp[7eBpZqSqqq8,q>fRUJ,~> o`+af!:fjQp[7eBpZqSfRUJ,~> o`+af!8@5"pXAl`pWWBQpVlmC!5@'Xqlfjtq>fRUJ,~> o`+afq![tFp[%Y?pZ_G9pZMS o`+afq![tFp[%Y?pZ_G9pZMS o`+afpt,8hpX&ZYpW3*JpVHmDf:;cBq5jDmj8XW~> o`+afq="(Gp[%Y?pZ_G9pZMP;f4P!=ptkiIj8XW~> o`+afq="(Gp[%Y?pZ_G9pZMP;f0B5kptkiIj8XW~> o`+afq:GAipX&ZYpW3*JpVHjCf9uT@poO;lj8XW~> o`+afqX=1Hp[%Y?pZ_G9pZMM:f4t o`+afqX=1Hp[%Y?pZ_G9pZMM:f0B8lpYP`Hj8XW~> o`+afqUbJjpX&ZYpW3*JpVHgBf9Q?=pT42kj8XW~> o`+afqsX:Ip[%Y?pZ_G9pZMJ9f5:QFpYGo+q>fRUJ,~> o`+afqsX:Ip[%Y?pZ_G9pZMJ9f0B;mpYGo+q>fRUJ,~> o`+afqq(SkpX&ZYpW3*JpVHdAf960;pT+@nq>fRUJ,~> o`+afr9sCJp[%Y?pZ_G9pZMG8f5L`IpYPr+q>fRUJ,~> o`+afr9sCJp[%Y?pZ_G9pZMG8f098mpYPr+q>fRUJ,~> o`+afr7C\lpX&ZYpW3*JpVHa@f8fp8pT4Cnq>fRUJ,~> o`+afrU9LKp[%Y?pZ_G9pZMD7f6?uGrn[DNj8XW~> o`+afrU9LKp[%Y?pZ_G9pZMD7f0B#drn[DNj8XW~> o`+afrR^empX&ZYpW3*JpVH^?f801&ri#Ynj8XW~> o`+afrpTULp[%Y?pZ_G9pZMA6f6d;LrS@;Mj8XW~> o`+afrpTULp[%Y?pZ_G9pZMA6f0B&erS@;Mj8XW~> o`+afrn$nnpX&ZYpW3*JpVH[>f7`q#rM]Pmj8XW~> o`+afs6o^Mp[%Y?pZ_G9pZM>5f7*PPr8%2Lj8XW~> o`+afs6o^Mp[%Y?pZ_G9pZM>5f0B)fr8%2Lj8XW~> o`+afs4@"opX&ZYpW3*JpVHX=f7Eb!r2BGlj8XW~> o`+af!:T[Ms6T3ol,EP_pZ:"YqVM,*q>fRUJ,~> o`+af!:T[Ms6T3ol,EP_pZ:!kqVM,*q>fRUJ,~> o`+af!8$tos3USTpUp73pUU74qn`$@f7!Lsql'>kj8XW~> o`+afp[8%If o`+afp[8%If o`+afpXB,gf o`+afq!S+If o`+afq!S+If o`+afps]2gf o`+afqpZ;D8f8]acptbcHj8XW~> o`+afqpZ;D8f0B5jptbcHj8XW~> o`+afq:#8gf o`+afqX47If o`+afqX47If o`+afqU>>gf o`+afqsO=If6f9?6kpY>i(q>fRUJ,~> o`+afqsO=If6f0B;lpY>i(q>fRUJ,~> o`+afqpYDgffRUJ,~> o`+afr9jCIf o`+afr9jCIf o`+afr6tJgf o`+afrU0IIp;Z.3!6"ZoqW-8"pYGi'q>fRUJ,~> o`+afrU0IIp;Z.3!6"ZoqW-6mpYGi'q>fRUJ,~> o`+afrR:Pg!58->pU^+0pUC44pqHU9f4"EPrhTAjj8XW~> o`+afrpKOIpZqS o`+afrpKOIpZqS o`+afrmUVgpWWBQpVlmCpV-I7f3S0MrM98ij8XW~> o`+afs6fXJpZqS o`+afs6fXJpZqS o`+afs3p_hpWWBQpVlmCpV-F6f38!Kr1s/hj8XW~> o`+af!:KUJpZqS o`+af!:KUJpZqS o`+af!7U\hpWWBQpVlmCpV-C5f2haHqkX&gj8XW~> o`+afp[%Y?pZ_G9pZM;4pZ)>6f<"l*qV1iHj8XW~> o`+afp[%Y?pZ_G9pZM;4pZ)>6f0B/gqV1iHj8XW~> o`+afpX&ZYpW3*JpVHU o`+afq!@b@pZ_G9pZM;4pZ2A6f<>,.q:k`Gj8XW~> o`+afq!@b@pZ_G9pZM;4pZ2A6f0B2hq:k`Gj8XW~> o`+afpsAcZpW3*JpVHU o`+afq<[kApZ_G9pZM;4pZ2>5f o`+afq<[kApZ_G9pZM;4pZ2>5f0B5iptPWFj8XW~> o`+afq9\l[pW3*JpVHU o`+afqX!tBpZ_G9pZM;4pZ2;4f=(\7pY5NEj8XW~> o`+afqX!tBpZ_G9pZM;4pZ2;4f0B8jpY5NEj8XW~> o`+afqU"u\pW3*JpVHU o`+afqs=(CpZ_G9pZM;4pZ283f=M"fRUJ,~> o`+afqs=(CpZ_G9pZM;4pZ283f0B;kpY,]%q>fRUJ,~> o`+afqp>)]pW3*JpVHUfRUJ,~> o`+afr9X1DpZ_G9pZM;4pZ252f=_1?pY5`%q>fRUJ,~> o`+afr9X1DpZ_G9pZM;4pZ252f0TJnpY5`%q>fRUJ,~> o`+afr6Y2^pW3*JpVHUfRUJ,~> o`+afrTs=FffRUJ,~> o`+afrTs=FffRUJ,~> o`+afrQt>`ffRUJ,~> o`+afrp9CFffRUJ,~> o`+afrp9CFffRUJ,~> o`+afrm:D`fpn[k^q>fRUJ,~> o`+afs6TLG!9r+AqW.G2f o`+afs6TLG!9r+AqW.G2f2)4sr7^uIj8XW~> o`+afs3UMa!6EcuqRZI1f0B),r1Wrej8XW~> o`+af!:9IGs68.AqrIM2f;nc&qqClHj8XW~> o`+af!:9IGs68.AqrIM2f2VV$qqClHj8XW~> o`+af!7:Jas2`fuqmuO1f0B,-qk o`+afpZqhCf o`+afpZqhCf o`+afpWWWXf o`+afq!7nCf o`+afq!7nCf o`+afprr]Xf o`+afq o`+afq o`+afq98cXf o`+afqWmn?pZVA7pZ;/1pYu/1f9lQlpY,HDj8XW~> o`+afqWmn?pZVA7pZ;/1pYu/1f4Y*;pY,HDj8XW~> o`+afqTS]TpVlmCpV-C5pU:%,f0B81pS%E`j8XW~> o`+afqs4"@pZVA7pZ;/1pYu,0f9?6hpY#W"q>fRUJ,~> o`+afqs4"@pZVA7pZ;/1pYu,0f51KApY#W"q>fRUJ,~> o`+afqonfUpVlmCpV-C5pU:"+f0B;2pRqSXq>fRUJ,~> o`+afr9O+ApZVA7pZ;/1pYu)/f89R_pY,Z"q>fRUJ,~> o`+afr9O+ApZVA7pZ;/1pYu)/f6%)JpY,Z"q>fRUJ,~> o`+afr64oVpVlmCpV-C5pU9t*f0982pS%VXq>fRUJ,~> o`+afrTj4BpZVA7pZ;/1pYu&.f7s%Rrn.&Ij8XW~> o`+afrTj4BpZVA7pZ;/1pYu&.f6R,Ern.&Ij8XW~> o`+afrQP#WpVlmCpV-C5pU9q)f0B#'rgilcj8XW~> o`+afrp0=CpZVA7pZ;/1pYu#-f7E_NrRgrHj8XW~> o`+afrp0=CpZVA7pZ;/1pYu#-f7*MKrRgrHj8XW~> o`+afrlk,XpVlmCpV-C5pU9n(f0B&(rLNcbj8XW~> o`+afs6KFDpZVA7pZ;/1pYtu,f6mDJr7LiGj8XW~> o`+afs6KFDpZVA7pZ;/1pYtu,f7WnQr7LiGj8XW~> o`+afs315YpVlmCpV-C5pU9k'f0B))r13Zaj8XW~> o`+af!:0CDpZVA7pZ;/1pYtr+f6@)Fqq1`Fj8XW~> o`+af!:0CDpZVA7pZ;/1pYtr+f80:Wqq1`Fj8XW~> o`+af!6k2YpVlmCpV-C5pU9h&f0B,*qjmQ`j8XW~> o`+afpZ_G9pZM;4pZ2).pYc,0f5piCqUkWEj8XW~> o`+afpZ_G9pZM;4pZ2).pYc,0f8TU\qUkWEj8XW~> o`+afpW3*JpVHU o`+afq!%P:pZM;4pZ2).pYl/0f5CN?q:PNDj8XW~> o`+afq!%P:pZM;4pZ2).pYl/0f9-!bq:PNDj8XW~> o`+afprN3KpVHU o`+afq<@Y;pZM;4pZ2).pYl,/f4t9 o`+afq<@Y;pZM;4pZ2).pYl,/f9Q o`+afq8i o`+afqW[n@f o`+afqW[n@f o`+afqT/QQf o`+afqs!t@ffRUJ,~> o`+afqs!t@ffRUJ,~> o`+afqoJWQffRUJ,~> o`+afr9=%@f o`+afr9=%@f o`+afr5e]Qc*R;Nf098/pRV>Qq>fRUJ,~> o`+afrTX+@ffRUJ,~> o`+afrTX+@ffRUJ,~> o`+afrQ+cQcEmANf0B##rgNZ`j8XW~> o`+afros1@ffRUJ,~> o`+afros1@ffRUJ,~> o`+afrlFiQca3GNf0B&$rL3Q_j8XW~> o`+afs69:A!9_t?qVh5,f1Gejr7CcFj8XW~> o`+afs69:A!9_t?qVh5,f=(M-r7CcFj8XW~> o`+afs2arR!5[$gpoi:6q47GPq>fRUJ,~> o`+af!9s7As6&"?qr.>-!8cfRUJ,~> o`+af!9s7As6&"?qr.>-!8c>>qUk\sq>fRUJ,~> o`+af!6FoRs2!*hpoa\!f0B,&qjR?]j8XW~> o`+afpZVA7pZ;/1pYtr+ptu,.f0B/bqUbQDj8XW~> o`+afpZVA7pZ;/1pYtr+ptu,.f>%48qUbQDj8XW~> o`+afpVlmCpV-C5pU9h&poj_!f0B/'qO76\j8XW~> o`+afpuqJ8pZ;/1pYtr+ptti&pYGSupY,Aoq:GHCj8XW~> o`+afpuqJ8pZ;/1pYtr+ptti&pYGSupY,Aoq:GHCj8XW~> o`+afpr3!DpV-C5pU9h&pojFnpSdh^pS%>Pq3q-[j8XW~> o`+afq<7S9pZ;/1pYtr+ptti&pYGSupY,Aopt,?Bj8XW~> o`+afq<7S9pZ;/1pYtr+ptti&pYGSupY,Aopt,?Bj8XW~> o`+afq8N*EpV-C5pU9h&pojFnpSdh^pS%>PpmV$Zj8XW~> o`+afqWR\:pZ;/1pYtr+ptti&pYGSupY,AopXf6Aj8XW~> o`+afqWR\:pZ;/1pYtr+ptti&pYGSupY,AopXf6Aj8XW~> o`+afqSi3FpV-C5pU9h&pojFnpSdh^pS%>PpR:pYj8XW~> o`+afqrme;pZ;/1pYtr+ptti&pYGSupY,AopX]Dqq>fRUJ,~> o`+afqrme;pZ;/1pYtr+ptti&pYGSupY,AopX]Dqq>fRUJ,~> o`+afqo/PpR2)Jq>fRUJ,~> o`+afr93nfRUJ,~> o`+afr93nfRUJ,~> o`+afr5JEHpV-C5pU9h&pojFnpSdh^pS%>PpR;,Jq>fRUJ,~> o`+afrTO"=pZ;/1pYtr+ptti&pYGSupY,AopXfDpq>fRUJ,~> o`+afrTO"=pZ;/1pYtr+ptti&pYGSupY,AopXfDpq>fRUJ,~> o`+afrPeNIpV-C5pU9h&pojFnpSdh^pS%>PpR;)Iq>fRUJ,~> o`+afroj+>pZ;/1pYtr+ptti&pYGSupY,AopXfAoq>fRUJ,~> o`+afroj+>pZ;/1pYtr+ptti&pYGSupY,AopXfAoq>fRUJ,~> o`+afrl+WJpV-C5pU9h&pojFnpSdh^pS%>PpR;&Hq>fRUJ,~> o`+afs604?pZ;/1pYtr+ptti&pYGSupY,AopXf>nq>fRUJ,~> o`+afs604?pZ;/1pYtr+ptti&pYGSupY,AopXf>nq>fRUJ,~> o`+afs2F`KpV-C5pU9h&pojFnpSdh^pS%>PpR;#Gq>fRUJ,~> o`+af!9j1?s5i^fmDJn>r878*!8[(ZmD/_9qUbVpq>fRUJ,~> o`+af!9j1?s5i^fmDJn>r878*!8[(ZmD/_9qUbVpq>fRUJ,~> o`+af!6+]Ks1\<fRUJ,~> o`+afpZMP;f o`+afpZMP;f o`+afpVHjCf o`+afpuhV;f o`+afpuhV;f o`+afpqcpCf o`+afq<.\;f o`+afq<.\;f o`+afq8*!Cf o`+afqWIb;f o`+afqWIb;f o`+afqSE'Cf o`+afqrdh;f o`+afqrdh;f o`+afqn`-Cf o`+afr9*n;f o`+afr9*n;f o`+afr5&3Cf o`+afrTEt;p;H@9p;6X^q;(_[mD/J2pXT8mq>fRUJ,~> o`+afrTEt;p;H@9p;6X^q;(_[mD/J2pXT8mq>fRUJ,~> o`+afrPA9C!4V^2pU'\$pp'k'q5jCjs0)1"pT=1jpT!tRrf[*Xj8XW~> o`+afroa%;pZ2).pYko)pYPZ#pY5GrpXo5lpXT5lq>fRUJ,~> o`+afroa%;pZ2).pYko)pYPZ#pY5GrpXo5lpXT5lq>fRUJ,~> o`+afrk\?CpU^+-pTsXupT4+fpS@PWpRV&IpQkc@q>fRUJ,~> o`+afs6'.fRUJ,~> o`+afs6'.fRUJ,~> o`+afs2"HDpU^+-pTsXupT4+fpS@PWpRV&IpQk`?q>fRUJ,~> o`+af!9a+fRUJ,~> o`+af!9a+fRUJ,~> o`+af!5\EDpU^+-pTsXupT4+fpS@PWpRV&IpQk]>q>fRUJ,~> o`+afpZ;/1pYtr+ptti&pYGSupY,AopXf/iqUG?Aj8XW~> o`+afpZ;/1pYtr+ptti&pYGSupY,AopXf/iqUG?Aj8XW~> o`+afpV-C5pU9h&pojFnpSdh^pS%>PpR:iBqNC[Tj8XW~> o`+afpuV82pYtr+ptti&pYGSupY,AopXf/iq:,6@j8XW~> o`+afpuV82pYtr+ptti&pYGSupY,AopXf/iq:,6@j8XW~> o`+afpqHL6pU9h&pojFnpSdh^pS%>PpR:iBq3(RSj8XW~> o`+afq;qA3pYtr+ptti&pYGSupY,AopXf/ipsf-?j8XW~> o`+afq;qA3pYtr+ptti&pYGSupY,AopXf/ipsf-?j8XW~> o`+afq7cU7pU9h&pojFnpSdh^pS%>PpR:iBplbIRj8XW~> o`+afqW7J4pYtr+ptti&pYGSupY,AopXf/ipXK$>j8XW~> o`+afqW7J4pYtr+ptti&pYGSupY,AopXf/ipXK$>j8XW~> o`+afqS)^8pU9h&pojFnpSdh^pS%>PpR:iBpQG@Qj8XW~> o`+afqrRS5pYtr+ptti&pYGSupY,AopXf/ipXB2kq>fRUJ,~> o`+afqrRS5pYtr+ptti&pYGSupY,AopXf/ipXB2kq>fRUJ,~> o`+afqnDg9pU9h&pojFnpSdh^pS%>PpR:iBpQ>N;q>fRUJ,~> o`+afr8m\6pYtr+ptti&pYGSupY,AopXf/ipXK5kq>fRUJ,~> o`+afr8m\6pYtr+ptti&pYGSupY,AopXf/ipXK5kq>fRUJ,~> o`+afr4_p:pU9h&pojFnpSdh^pS%>PpR:iBpQGQ;q>fRUJ,~> o`+afrT3e7pYtr+ptti&pYGSupY,AopXf/ipXK2jq>fRUJ,~> o`+afrT3e7pYtr+ptti&pYGSupY,AopXf/ipXK2jq>fRUJ,~> o`+afrP&$;pU9h&pojFnpSdh^pS%>PpR:iBpQGN:q>fRUJ,~> o`+afroNn8pYtr+ptti&pYGSupY,AopXf/ipXK/iq>fRUJ,~> o`+afroNn8pYtr+ptti&pYGSupY,AopXf/ipXK/iq>fRUJ,~> o`+afrkA-PpR:iBpQGK9q>fRUJ,~> o`+afs5j"9pYtr+ptti&pYGSupY,AopXf/ipXK,hq>fRUJ,~> o`+afs5j"9pYtr+ptti&pYGSupY,AopXf/ipXK,hq>fRUJ,~> o`+afs1\6=pU9h&pojFnpSdh^pS%>PpR:iBpQGH8q>fRUJ,~> o`+af!9Nt9pYtr+ptti&pYGSupY,AopXf/ipXK)gq>fRUJ,~> o`+af!9Nt9pYtr+ptti&pYGSupY,AopXf/ipXK)gq>fRUJ,~> o`+af!5A3=pU9h&pojFnpSdh^pS%>PpR:iBpQGE7q>fRUJ,~> o`+afpZ2).pYko)pYPZ#pY5GrpXo5lpXT#fqU53?j8XW~> o`+afpZ2).pYko)pYPZ#pY5GrpXo5lpXT#fqU53?j8XW~> o`+afpU^+-pTsXupT4+fpS@PWpRV&IpQkQ:qN(IQj8XW~> o`+afpuM2/pYko)pYPZ#pY5GrpXo5lpXT#fq9o*>j8XW~> o`+afpuM2/pYko)pYPZ#pY5GrpXo5lpXT#fq9o*>j8XW~> o`+afpq$4.pTsXupT4+fpS@PWpRV&IpQkQ:q2b@Pj8XW~> o`+afq;h;0pYko)pYPZ#pY5GrpXo5lpXT#fpsT!=j8XW~> o`+afq;h;0pYko)pYPZ#pY5GrpXo5lpXT#fpsT!=j8XW~> o`+afq7?=/pTsXupT4+fpS@PWpRV&IpQkQ:plG7Oj8XW~> o`+afqW.D1pYko)pYPZ#pY5GrpXo5lpXT#fpX8m o`+afqW.D1pYko)pYPZ#pY5GrpXo5lpXT#fpX8m o`+afqRZF0pTsXupT4+fpS@PWpRV&IpQkQ:pQ,.Nj8XW~> o`+afnP&@Dm7Qb;m7?V7p."lYj8XW~> o`+afnP&@Dm7Qb;m7?V7p."lYj8XW~> o`+afq`aa;pH844pH&%.pG_h)pGM\%pG2ItpFlS#q>fRUJ,~> o`'IBo`4%PJ,~> o`'IBo`4%PJ,~> o`'IBo`4%PJ,~> o`'IBo`4%PJ,~> o`'IBo`4%PJ,~> o`'IBo`4%PJ,~> o`'IBo`4%PJ,~> o`'IBo`4%PJ,~> o`'IBo`4%PJ,~> o`'IBo`4%PJ,~> o`'IBo`4%PJ,~> o`'IBo`4%PJ,~> o`'IBo`4%PJ,~> o`'IBo`4%PJ,~> o`'IBo`4%PJ,~> o`'IBo`4%PJ,~> o`'IBo`4%PJ,~> o`'IBo`4%PJ,~> o`'JBoi:&PJ,~> o`'JBoi:&PJ,~> o`'JBoi:&PJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> JcEmmJ,~> %%EndData showpage %%Trailer end %%EOF semantik-0.9.5/src/templates/beamer/beamermindist/art/beamericonarticle.pdf000664 000000 000000 00000005570 12732552614 027132 0ustar00rootroot000000 000000 %PDF-1.3 7 0 obj << /Length 325 /Filter /FlateDecode >> stream xڝTKn s .Ug]͢]LU_3JB {]jg'kojh'$f܌wh7[Ĥg6ŵ1*sL$J*;H_k%|W rL/toeG7=>m}訣4g'n\,fޏM rN] 0_8X" ZEkn!ba!"D7X2kVp|N%fab ¬@#qhF !\)HcE}R_{{oendstream endobj 6 0 obj << /Type /Page /Contents 7 0 R /Resources 5 0 R /MediaBox [0 0 10.959 13.948] /Parent 8 0 R >> endobj 2 0 obj << /Type /XObject /Subtype /Form /BBox [0 0 19.925 14.944] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 9 0 R /Length 15 /Filter /FlateDecode >> stream xP(endstream endobj 9 0 obj << /Shading << /Sh << /ShadingType 2 /ColorSpace /DeviceRGB /Domain [0.0 14.94392] /Coords [0 0.0 0 14.94392] /Function << /FunctionType 3 /Domain [0.0 14.94392] /Functions [ << /FunctionType 2 /Domain [0.0 14.94392] /C0 [0.8 0.8 0.5] /C1 [1 1 1] /N 1 >> ] /Bounds [] /Encode [0 1 ] >> /Extend [false false] >> >> /ProcSet [ /PDF ] >> endobj 4 0 obj << /Type /XObject /Subtype /Form /BBox [0 0 1.993 1.993] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 10 0 R /Length 15 /Filter /FlateDecode >> stream xP(endstream endobj 10 0 obj << /Shading << /Sh << /ShadingType 2 /ColorSpace /DeviceRGB /Domain [0.0 1.99252] /Coords [0 0.0 0 1.99252] /Function << /FunctionType 3 /Domain [0.0 1.99252] /Functions [ << /FunctionType 2 /Domain [0.0 1.99252] /C0 [0.5 0.5 0] /C1 [0.8 0.8 0.8] /N 1 >> ] /Bounds [] /Encode [0 1 ] >> /Extend [false false] >> >> /ProcSet [ /PDF ] >> endobj 3 0 obj << /Type /XObject /Subtype /Form /BBox [0 0 2.491 3.487] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 11 0 R /Length 15 /Filter /FlateDecode >> stream xP(endstream endobj 11 0 obj << /Shading << /Sh << /ShadingType 2 /ColorSpace /DeviceRGB /Domain [0.0 3.48691] /Coords [0 0.0 0 3.48691] /Function << /FunctionType 3 /Domain [0.0 3.48691] /Functions [ << /FunctionType 2 /Domain [0.0 3.48691] /C0 [0.25 0.75 0.25] /C1 [0.75 0.25 0.25] /N 1 >> << /FunctionType 2 /Domain [0.0 3.48691] /C0 [0.75 0.25 0.25] /C1 [0.25 0.25 0.75] /N 1 >> ] /Bounds [ 1.49438] /Encode [0 1 0 1] >> /Extend [false false] >> >> /ProcSet [ /PDF ] >> endobj 5 0 obj << /XObject << /Fm2 2 0 R /Fm4 4 0 R /Fm3 3 0 R >> /ProcSet [ /PDF ] >> endobj 8 0 obj << /Type /Pages /Count 1 /Kids [6 0 R] >> endobj 12 0 obj << /Type /Catalog /Pages 8 0 R >> endobj 13 0 obj << /Producer (pdfTeX-0.14h) /Creator (TeX) /CreationDate (D:20031016203400) >> endobj xref 0 14 0000000001 65535 f 0000000000 00000 f 0000000522 00000 n 0000001624 00000 n 0000001073 00000 n 0000002287 00000 n 0000000412 00000 n 0000000009 00000 n 0000002374 00000 n 0000000722 00000 n 0000001272 00000 n 0000001823 00000 n 0000002431 00000 n 0000002481 00000 n trailer << /Size 14 /Root 12 0 R /Info 13 0 R >> startxref 2576 %%EOF semantik-0.9.5/src/templates/beamer/beamermindist/art/beamericonarticle.tex000664 000000 000000 00000006276 12732552614 027165 0ustar00rootroot000000 000000 \documentclass[12pt]{article} \usepackage{pgf,pgfshade} \usepackage{color} \usepackage[papersize={11pt,14pt},hmargin=0pt,vmargin=0pt,headsep=0pt,nohead,nofoot]{geometry} \pagestyle{empty} \begin{document} \begin{colormixin}{20}% \pgfdeclareverticalshading{shadow}{20pt}{% rgb(0pt)=(.2,.2,.2); rgb(11pt)=(1,1,1)}% \pgfdeclareverticalshading{paper}{20pt}{% rgb(0pt)=(0.8,0.8,0.5); rgb(15pt)=(1,1,1)}% \pgfdeclareverticalshading{pic}{2.5pt}{% rgb(0pt)=(0.25,0.75,0.25); rgb(1.5pt)=(0.75,0.25,0.25); rgb(3.5pt)=(0.25,0.25,0.75)}% \pgfdeclareverticalshading{corner}{2pt}{% rgb(0pt)=(0.5,0.5,0); rgb(2pt)=(0.8,0.8,0.8)}% \noindent\hbox{% \begin{pgfpicture}{-1pt}{-2pt}{10pt}{12pt} \pgfsetxvec{\pgfpoint{1pt}{0pt}} \pgfsetyvec{\pgfpoint{0pt}{1pt}} \pgfsetlinewidth{0.4pt} % \begin{pgfscope} % \color[gray]{0.7} % \pgfmoveto{\pgfxy(0.6,-1)} % \pgflineto{\pgfxy(9,-1)} % \pgflineto{\pgfxy(9,8.2)} % \pgflineto{\pgfxy(6.8,10.4)} % \pgflineto{\pgfxy(0.6,10.4)} % \pgfclip % \pgfputat{\pgfxy(0.6,-10)} % {% % \begin{pgfrotateby}{\pgfdegree{45}} % \pgfbox[left,base]{\pgfuseshading{shadow}} % \end{pgfrotateby} % } % \end{pgfscope} \begin{pgfscope} \pgfmoveto{\pgfxy(0,0)} \pgflineto{\pgfxy(8,0)} \pgflineto{\pgfxy(8,9)} \pgflineto{\pgfxy(6,9)} \pgflineto{\pgfxy(6,11)} \pgflineto{\pgfxy(0,11)} \pgfclip \pgfputat{\pgfxy(0,-10)} {% \begin{pgfrotateby}{\pgfdegree{45}} \pgfbox[left,base]{\pgfuseshading{paper}} \end{pgfrotateby} } \end{pgfscope} \begin{pgfscope} \pgfmoveto{\pgfxy(8,9)} \pgflineto{\pgfxy(6,9)} \pgflineto{\pgfxy(6,11)} \pgfclip \pgfputat{\pgfxy(6,9)}{\pgfbox[left,base]{\pgfuseshading{corner}}} \end{pgfscope} \pgfmoveto{\pgfxy(0,0)} \pgflineto{\pgfxy(8,0)} \pgflineto{\pgfxy(8,9)} \pgflineto{\pgfxy(6,11)} \pgflineto{\pgfxy(0,11)} \pgfclosepath \pgfstroke \color[gray]{0.5} \pgfxyline(1,9.5)(6,9.5) \color[gray]{0.6} \pgfxyline(2,8)(6,8) \pgfxyline(2,7)(6,7) \color[gray]{0.7} \pgfxyline(1,5.5)(3.5,5.5) \pgfxyline(1,4.5)(3.5,4.5) \pgfxyline(1,3.5)(3.5,3.5) \pgfxyline(1,2.5)(3.5,2.5) \pgfxyline(1,1.5)(3.5,1.5) \pgfputat{\pgfxy(4.5,2.25)}{\pgfbox[left,base]{\pgfuseshading{pic}}} \pgfxyline(4.5,1.5)(7,1.5) \color{black} \pgfmoveto{\pgfxy(8,9)} \pgflineto{\pgfxy(6,9)} \pgflineto{\pgfxy(6,11)} \pgfstroke \end{pgfpicture}% }% \end{colormixin}% \end{document} semantik-0.9.5/src/templates/beamer/beamermindist/art/beamericonbook.20.eps000664 000000 000000 00000060272 12732552614 026677 0ustar00rootroot000000 000000 %!PS-Adobe-3.0 EPSF-3.0 %%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner %%Title: /n/mappazza/home4/algo/tantau/texmf/tex/latex/classes/latex-beamer/beamericonbook.20.eps %%CreationDate: Wed Oct 29 13:59:19 2003 %%DocumentData: Clean7Bit %%LanguageLevel: 2 %%Pages: 1 %%BoundingBox: 14 14 29 27 %%EndComments %%BeginProlog % Use own dictionary to avoid conflicts 10 dict begin %%EndProlog %%Page: 1 1 % Translate for offset 14.173228 14.173228 translate % Translate to begin of first scanline 0.000000 11.952000 translate 13.968000 -11.952000 scale % Image geometry 194 166 8 % Transformation matrix [ 194 0 0 166 0 0 ] % Strings to hold RGB-samples per scanline /rstr 194 string def /gstr 194 string def /bstr 194 string def {currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} {currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} {currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} true 3 %%BeginData: 23693 ASCII Bytes colorimage JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> XoACqrpTgJ!:QHXJ,~> XoACqrpTgJ!:QHXJ,~> XoACqrpTgJ!:QHXJ,~> ZN'pmp#Z8KT)X<~> ZN'pmp#Z8KT)X<~> ZN'pmp#Z8KT)X<~> \GlR'rpTOB!8RM7!;E,cJ,~> \GlR'rpTOB!8RM7!;E,cJ,~> \GlR'rpTOB!8RM7!;E,cJ,~> ^&S*#p#Z85rnRJ(!SlZ5joFkCs*t~> ^&S*#p#Z85rnRJ(!SlZ5joFkCs*t~> ^&S*#p#Z85rnRJ(!SlZ5joFkCs*t~> _uB`2rpTOBrnR1u!9*q>!:QW]J,~> _uB`2rpTOBrnR1u!9*q>!:QW]J,~> _uB`2rpTOBrnR1u!9*q>!:QW]J,~> aT)8.p#Z85rnQto!8RS9!:QZ^J,~> aT)8.p#Z85rnQto!8RS9!:QZ^J,~> aT)8.p#Z85rnQto!8RS9!:QZ^J,~> cMmn=rpTOBrnQ_h!8RS9!UocYs*t~> cMmn=rpTOBrnQ_h!8RS9!UocYs*t~> cMmn=rpTOBrnQ_h!8RS9!UocYs*t~> e,TF9p#Z85rnQMb!8RP8!;E>iJ,~> e,TF9p#Z85rnQMb!8RP8!;E>iJ,~> e,TF9p#Z85rnQMb!8RP8!;E>iJ,~> g&D'HrpTOBrnQ5Z!9*q>!;EAjJ,~> g&D'HrpTOBrnQ5Z!9*q>!;EAjJ,~> g&D'HrpTOBrnQ5Z!9*q>!;EAjJ,~> hZ*TDp#Z85rnQMbs4mb:ki;Hi!9*q>!:QicJ,~> hZ*TDp#Z85rnQMbs4%2#e("0E!9*q>!:QicJ,~> hZ*TDp#Z85rnQMbs4.8%eCF?G!9*q>!:QicJ,~> jSo5SrpTOBrnQMb!oMhiq<.h=pt#N)roO4LW;hA~> jSo5SrpTOBrnQJas4-qo!7^eq!9*q>!:QldJ,~> jSo5SrpTOBrnQMb!nc)Tq:#Dppt#N)roO4LW;hA~> l2UbOp#Z85rnQMbs5*h=rU'@C!9 l2UbOp#Z85rnQ8[pX9,lpt#N$roO4LWW.J~> l2UbOp#Z85rnQMbs4I8&pXB2npt#N$roO4LWW.J~> n,EC^rpTOBrnQMbrnmG:p?2M4q:>W%rT4+SX8d\~> n,EC^rpTOBrnQ#TpW%rT4+SX8d\~> n,EC^rpTOBrnQMbrn-qtp=')nq:>W%rT4+SX8d\~> o`+pZp#Z85rnQMbs5*h=nEor5!8[J&!SlZ5joG.Ws*t~> o`+pZp#Z85rnPfNpZ&iVqs>pT4CF~> o`+pZp#Z85rnQMbs4Henp=')nq:>Z&iVqs>pT4CF~> p\t9gn+PoCgu?rbhs'P%kQ'H6f)Xe/joFkPs*t~> p\t9gn+PoCgrJ%?df@qnf)Xe/joFkPs*t~> p\t9gn+PoCgu?rbf]h)_e,\(pf)Xe/joFkPs*t~> q#:?gqW7e:rnQMbs5*h=j6cR(!9!:R)jJ,~> q#:?gqW7e:rnP?Ap q#:?gqW7e:rnQMbs4H>ap=')mpt#N)roO4LY5a"~> q>UHhrT=.8in"7ihr!5Vp?2M:pt#N$roO4LYQ'+~> q>UHhrT=.8in"1_g=Q&I!7^eq!8RS9!:R,kJ,~> q>UHhrT=.8in"7bf\#!4p=')mpt#N$roO4LYQ'+~> q>UQck2tX`fDjb/kl(#)mIo`Ej5'O_!8RS9!Uocfs*t~> q>UQck2tX`fDjM$g"P'OdfItKq:>W%roO7MpTaaK~> q>UQck2tX`fDjM(g\op]g%Nnre^jQJ!8RS9!Uocfs*t~> qYpQiroWIsro!M>g?nRs!8[J&!8RP8!;Ef!J,~> qYpQiroWIsrn-qtg=Q#H!7gns!8RP8!;Ef!J,~> qYpQiroWIsrn7##g=c/K!7ptt!8RP8!;Ef!J,~> qYpZdk2tIefDjb/kj\)qmIfZCh>#S%iVqs>pTsmM~> qYpZdk2tIefDjLlg"P'Ndf@qnf)Xe/joG.^s*t~> qYpZdk2tIefDjM(g[O"Pg%Ehpf(dhsiVqs>pTsmM~> qZ$QW!8R4us5=+=o()>@mI8isp#lD9pt#N)roO4L[/YX~> qZ$QW!8R4us4[\1hr!5EmFg4Fp!Wojpt#N)roO4L[/YX~> qZ$QW!8R4urnIJ3s5*.ug=c/K!7gkr!9*q>!:R;pJ,~> qu6cek2tXtf)jsjli-PVoD\=\na5i"mIfZCj7q4+iVqs>n$W1G~> qu6cek2tXtf)jgbj8S0?ir7j8h!NeKfCdSmeG.VqiVqs>n$W1G~> qu6cek2tXtf)jgbj8S3@j8S$;hX0+Pg%EhpebI_riVqs>n$W1G~> qu6cek2tIrfDkUEpAagbo`+O^o)J7InCm:&kQ'Z qu6cek2tIrfDk:huDL!g"P'Ndf@nmf)XV*joFkYs*t~> qu6cek2tIrfDk: qu?ZXqpti-rqHEcs7QB`s7?6\s7,LGg?nOr!8[J&!8RP8!;F#'J,~> qu?ZXqpti*rpKdOs60IDs5O%8s4m"pg=PuG!7gns!8RP8!;F#'J,~> qu?ZXqpti*rpKdOs60IEs5X+;s5*.ug=c,J!7ptt!8RP8!;F#'J,~> r;Qlfk2tY"f)Y4:p\smdp&=U`oD\=\na5i"mI]TBh>,Y'gu87p!;F&(J,~> r;Qlfk2tY"f)Y"4mf)PPkl0]Dir7j8h!NeKfC[MlebRetgu87p!;F&(J,~> r;Qlfk2tY"f)Y"4mf)PPkl0`Ej8S$;hX0+Pg% r;Qlfk2tIrfDG=ApAagbo`+O^o)J7InCm:%kQ'H6f)Xe/joFk]s*t~> r;Qlfk2tIrf)Y18mf)PPkl0]Dir7j8h!NeKfC[MlebI_riVqs>n%/OL~> r;Qlfk2tIrf)Y.7mf)PPkl0`Ej8S$;hX0+Pg%n%/OL~> r;ZcYqpti-qY1!_s7QB`s7?6\s7,LGg?nOr!9!:RQ"J,~> r;ZcYqpto)m-OZrnmb2mFg4Fo[ r;ZcYqpto)lg+K:rp0UJroX7@ro*n6mG-FKo[Elkpt#N)roO4L]DmB~> r;ZfZ!8RJ'!UTOVp\smdp&=U`oD\=\na5i"mI]TBj7q4+h#?F9n%A[N~> r;ZfZ!8RJ'"6&D/m/6;Nli62Jjo=?>huDL!g"P'Mdf@nmf)XV*joFk_s*t~> r;ZfZ!8RJ'"6&D.lhp2Mli62Jk5XK@iW%d%gtLHRe,\%of)XV*joFk_s*t~> rVlugk2tIsf)Xh0pA4O_pAagbo`+O^o)J7InCm:%kQ0`"q:>W%roO7MpV-ZX~> rVlugk2tIsf*0skjlYprr9jRMs60IDs5O%8s4m"pg=PuG!S#Zqf)XV*joOrF^Ai]~> rVlugk2tIsf*0skjlYmpr9jRMs60IEs5X+;s5*.ug=c,J!S,csf)XV*joOrF^Ai]~> rVlugk2tIsf)Xh/pA4O_pAagbo`+O^o)J7InCm:$kQ'H7f)XV)joG.js*t~> rVlugk2tIsf)XV*jT=T2m/6;Nli62Jjo=?>huDL!g"P'Ldf@qof)XV)joG.js*t~> rVlugk2tIsf)XV*jT=T1lhp2Mli62Jk5XK@iW%d%gtLHQe,\(qf)XV)joG.js*t~> rVlugk2tIsf)Xh.pA4O_pAagbo`+O^o)J7InCm:$kQ'H6f)Xe/joG.ks*t~> rVlugk2tIsf)XV)jT=T2m/6;Nli62Jjo=?>huDL!g"P'Ldf@qnf)Xe/joG.ks*t~> rVlugk2tIsf)XV)jT=T1lhp2Mli62Jk5XK@iW%d%gtLHQe,\(pf)Xe/joG.ks*t~> rVulZ!8RM(!93nLqY1!_s7QB`s7?6\s7,LGg?nLq!9!:Rc(J,~> rVulZ!8RM(!8RM6!p8k9r9jRMs60IDs5O%8s4m"pg=PrF!7^eq!9*q>!:Rc(J,~> rVulZ!8RM(!8RM6!p8h7r9jRMs60IEs5X+;s5*.ug=c)I!7gkr!9*q>!:Rc(J,~> rVulZqpti8qY'd[rq?Bbrq-6^rpp*ZmI8isoB627pt#N)roO4L_Z,,~> rVulZqpti,qrInAm-OZrnmb2mFg4Fo@!]hpt#N)roO4L_Z,,~> rVulZqpti,qrInAlg+K:rp0UJroX7@ro*n6mG-FKo@*cjpt#N)roO4L_Z,,~> rVulZqq(lBqY'd[rq?Bbrq-6^rpp*ZmI8isoB627pt#N$roO4L_uG5~> rVulZqq(Z*!p8k9r9jRMs60IDs5O%8s4m"pg=PrF!7^eq!8RS9!:Ri*J,~> rVulZqq(Z*!p8h7r9jRMs60IEs5X+;s5*.ug=c)I!7gkr!8RS9!:Ri*J,~> rVulZqq(iAqY'd[rq?Bbrq-6^rpp*ZmI8iso&p)0q:>W%rT4+S`W(G~> rVulZqq(W)!p8k9r9jRMs60IDs5O%8s4m"pg=PoE!7gns!8RP8!;FJ4J,~> rVulZqq(W)!p8h7r9jRMs60IEs5X+;s5*.ug=c&H!7ptt!8RP8!;FJ4J,~> rVuo[!9*h,rV-0^qY1!_s7QB`s7?6\s7,LGg?nIp!8[J&!SlZ5joG.qs*t~> rVuo[!9*h,pZ2J=m-OZrnmb2mFg4Fo$[Thq:>Z&iVqs>pW!5`~> rVuo[!9*h,pZ2J=lg+K:rp0UJroX7@ro*n6mG-FKo$dZjq:>Z&iVqs>pW!5`~> rVuo[!8RJ'r:g']qY1!_s7QB`s7?6\s7,LGg?nIp!8[G%!9*q>!:Ru.J,~> rVuo[!8RJ'p>lArnmb2mFg4Fo$[Thpt#N)roO4La8^Y~> rVuo[!8RJ'p>lA rVuo[!8RJ'qtKs\qY1!_s7QB`s7?6\s7,LGg?nIp!9!:S#/J,~> rVuo[!8RJ'p#Q8;m-OZrnmb2mFg4Fo$[Tgpt#N)roO4LaT$b~> rVuo[!8RJ'p#Q8;lg+K:rp0UJroX7@ro*n6mG-FKo$dZipt#N)roO4LaT$b~> rVulZqq(]=qY'd[rq?Bbrq-6^rpp*ZmI8iso&p)6pt#N$roO4Lao?k~> rVulZqq(K%!p8k9r9jRMs60IDs5O%8s4m"pg=PoE!7^eq!8RS9!:S&0J,~> rVulZqq(K%!p8h7r9jRMs60IEs5X+;s5*.ug=c&H!7gkr!8RS9!:S&0J,~> rVulZqq(Z,Y&h#?F:n+Y$*J,~> rVulZqq(H$!p8k9r9jRMs60IDs5O%8s4m"pg=PoE!S#Zqf)XV*joOrFbQ!(~> rVulZqq(H$!p8h7r9jRMs60IEs5X+;s5*.ug=c&H!S,csf)XV*joOrFbQ!(~> rVulZqq(W;qY'd[rq?Bbrq-6^rpp*ZmI8isn`Tu/q:>W%rT4+Sbl<1~> rVulZqq(E#!p8k9r9jRMs60IDs5O%8s4m"pg=PlD!7gns!8RP8!;F_;J,~> rVulZqq(E#!p8h7r9jRMs60IEs5X+;s5*.ug=c#G!7ptt!8RP8!;F_;J,~> rVulZqpti-q"OXYqY1!_s7QB`s7?6\s7,LGg?nFo!8[G%!9*q>!;Fb rVulZqpti'o&Tr8m-OZrnmb2mFg4Fn^@Kgpt#N)roO4Tc2W:~> rVulZqpti'o&Tr8lg+K:rp0UJroX7@ro*n6mG-FKn^IQipt#N)roO4Tc2W:~> rVlugk2tIsf)Xh)p\OU[p\smdp&=U`oD\=\na5i"mIBB?j7q4+iVqs>n':r`~> rVlugk2tIsf)XUrjT=T2m/6;Nli62Jjo=?>huDL!g"P'Jdf@nmf)Xe/joFkqs*t~> rVlugk2tIsf)XUrjT=T1lhp2Mli62Jk5XK@iW%d%gtLHOe,\%of)Xe/joFkqs*t~> rVlugk2tIsf)Xh(p\OU[p\smdp&=U`oD\=\na5i"mIBB?j7q4+iVqs>n'D#a~> rVlugk2tIsf)a[hn`9i7m-OZrnmb2mFg4Fn^@Kfpt#N)roO4Lci8L~> rVlugk2tIsf)a[hn`9i7lg+K:rp0UJroX7@ro*n6mG-FKn^IQhpt#N)roO4Lci8L~> rVlugk2tIsf)Xh'p\OU[p\smdp&=U`oD\=\na5i"mIBB?j7q4+h#?F9n'M)b~> rVlugk2tIsf)jaik4.O7k3VI4mf)PPkl0]Dir7j8h!NeKfC@;ieG.Vqh#?F9n'M)b~> rVlugk2tIsf)jaik4.O7k3M@2mf)PPkl0`Ej8S$;hX0+Pg%!PlebI_rh#?F9n'M)b~> rVluok2tIrfC\h6pA4O_pAagbo`+O^o)J7InCm:!kQ'H7f)XV)joG/(s*t~> rVluok2tIrfDaq&jT=T2m/6;Nli62Jjo=?>huDL!g"P'Idf@qof)XV)joG/(s*t~> rVluok2tIrfDaq&jT=T1lhp2Mli62Jk5XK@iW%d%gtLHNe,\(qf)XV)joG/(s*t~> r;ZfZ!9*h,!:BFQqY'd[rq?Bbrq-6^rpp*ZmI8isnE9l.q:>Z&iVqs>pXB.m~> r;ZfZ!9*h,!9*q>n`9i7m-OZrnmb2mFg4FnC%Bfq:>Z&iVqs>pXB.m~> r;ZfZ!9*h,!9*q>n`9i7lg+K:rp0UJroX7@ro*n6mG-FKnC.Hhq:>Z&iVqs>pXB.m~> r;ZcYqpti-oCr+TqY1!_s7QB`s7?6\s7,LGg?nCn!8[G%!9*q>!:SG;J,~> r;ZcYqpti'rT!:SG;J,~> r;ZcYqpti'rT!:SG;J,~> r;Qlfk2tIrfCJ\4pA4O_pAagbo`+O^o)J7InCm:!kQ'Z r;Qlfk2tIrfDOe$jT=T2m/6;Nli62Jjo=?>huDL!g"P'Idf@nmf)Xe/joFl#s*t~> r;Qlfk2tIrfDOe$jT=T1lhp2Mli62Jk5XK@iW%d%gtLHNe,\%of)Xe/joFl#s*t~> r;Qlnk2tY"f)Xh$p\OU[p\smdp&=U`oD\=\na5i"mI9<>j7q4+h#?F9n(.Mh~> r;Qlnk2tY"f)XV(k4.O7k3VI4mf)PPkl0]Dir7j8h!NeKfC75heG.Vqh#?F9n(.Mh~> r;Qlnk2tY"f)XV(k4.O7k3M@2mf)PPkl0`Ej8S$;hX0+Pg$mJkebI_rh#?F9n(.Mh~> qu?ZX!8RM(!93PCqY'd[rq?Bbrq-6^rpp*ZmI8isnE9o5h>,Y&h#?F:n+YK7J,~> qu?ZX!8RM(!8RJ6n`9i7m-OZrnmb2mFg4FnC%EfebResh#?F:n+YK7J,~> qu?ZX!8RM(!8RJ6n`9i7lg+K:rp0UJroX7@ro*n6mG-FKnC.Khf(mnth#?F:n+YK7J,~> qu6cek2tIrf)Y4.p\OU[p\smdp&=U`oD\=\na5i"mI06=h>,Y&h#6@8pY#Rs~> qu6cek2tIrf)Xe,k4.O7k3VI4mf)PPkl0]Dir7j8h!NeKfC./gebResh#6@8pY#Rs~> qu6cek2tIrf)Xe,k4.O7k3M@2mf)PPkl0`Ej8S$;hX0+Pg$dDjf(mnth#6@8pY#Rs~> qu6ZjroX+0!93MBqY'd[rq?Bbrq-6^rpp*ZmI8isn)sc-pt#N)roO4TgAc[~> qu6ZjroX+0!8RG5n`9i7m-OZrnmb2mFg4Fn'_9ept#N)roO4TgAc[~> qu6ZjroX+0!8RG5n`9i7lg+K:rp0UJroX7@ro*n6mG-FKn'h?gpt#N)roO4TgAc[~> qZ$QW!8RJ'!93MBqY'd[rq?Bbrq-6^rpp*ZmI8isn)sc3pt#N)roO4Lg])d~> qZ$QW!8RJ'!8RG5n`9i7m-OZrnmb2mFg4Fn'_9dpt#N)roO4Lg])d~> qZ$QW!8RJ'!8RG5n`9i7lg+K:rp0UJroX7@ro*n6mG-FKn'h?fpt#N)roO4Lg])d~> qYpZdk2tY!f)Y4-p\OU[p\smdp&=U`oD\=\na5i"mI06=j7q4+iVqs>n(dqn~> qYpZdk2tY!f)Xe+k4.O7k3VI4mf)PPkl0]Dir7j8h!NeKfC./geG.VqiVqs>n(dqn~> qYpZdk2tY!f)Xe+k4.O7k3M@2mf)PPkl0`Ej8S$;hX0+Pg$dDjebI_riVqs>n(dqn~> q>^HV!8RG&!:B:MqY'd[rq?Bbrq-6^rpp*ZmI8isn)sc3pt#N$roO4Lh>`!~> q>^HV!8RG&!9*e:n`9i7m-OZrnmb2mFg4Fn'_9dpt#N$roO4Lh>`!~> q>^HV!8RG&!9*e:n`9i7lg+K:rp0UJroX7@ro*n6mG-FKn'h?fpt#N$roO4Lh>`!~> q>UQck2tXuf)Y4-p\OU[p\smdp&=U`oD\=\na5i"mI'0,Y&h#6@8pYZ"$~> q>UQck2tXuf)Xe+k4.O7k3VI4mf)PPkl0]Dir7j8h!NeKfC%)febResh#6@8pYZ"$~> q>UQck2tXuf)Xe+k4.O7k3M@2mf)PPkl0`Ej8S$;hX0+Pg$[>if(mnth#6@8pYZ"$~> q#:Hbk2tXuf)Y4-p\OU[p\smdp&=U`oD\=\na5i"mI'0,Y'gu87p!;GFOJ,~> q#:Hbk2tXuf)Xe+k4.O7k3VI4mf)PPkl0]Dir7j8h!NeKfC%)febRetgu87p!;GFOJ,~> q#:Hbk2tXuf)Xe+k4.O7k3M@2mf)PPkl0`Ej8S$;hX0+Pg$[>if(mnugu87p!;GFOJ,~> q#:?groO4>q:>W6nFueQqY1!_s7QB`s7?6\s7,LGg?n=l!8[G%!9*q>!:SnHJ,~> q#:?groO4>q:>W*qW@>0!p8k9r9jRMs60IDs5O%8s4m"pg=PcA!7gkr!9*q>!:SnHJ,~> q#:?groO4>q:>W*qW@>0!p8h7r9jRMs60IEs5X+;s5*.ug=boD!7pqs!9*q>!:SnHJ,~> p\t6froO49q:G*0qY'd[rq?Bbrq-6^rpp*ZmI8ismcXZ2pt#N)roO4Lir=N~> p\t6froO49q:GH)n`9i7m-OZrnmb2mFg4FmaD0cpt#N)roO4Lir=N~> p\t6froO49q:GH)n`9i7lg+K:rp0UJroX7@ro*n6mG-FKmaM6ept#N)roO4Lir=N~> pAY-eroO49qUY`,n+Z\PqY1!_s7QB`s7?6\s7,LGg?n=l!9 pAY-eroO49qUY`&q<%5/!p8k9r9jRMs60IDs5O%8s4m"pg=PcA!7^eq!8RS9!:StJJ,~> pAY-eroO49qUY`&q<%5/!p8h7r9jRMs60IEs5X+;s5*.ug=boD!7gkr!8RS9!:StJJ,~> p&>$droO49qUY`,n+Z\PqY1!_s7QB`s7?6\s7,LGg?n=l!TW#3f)XV*joOrFjo9i~> p&>$droO49qUY`&q<%5/!p8k9r9jRMs60IDs5O%8s4m"pg=PcA!S#Zqf)XV*joOrFjo9i~> p&>$droO49qUY`&q<%5/!p8h7r9jRMs60IEs5X+;s5*.ug=boD!S,csf)XV*joOrFjo9i~> o`"p[roO49qUY`,n+Z\PqY1!_s7QB`s7?6\s7,LGg?n:k!8[J&!8RP8!;GXUJ,~> o`"p[roO49qUY`&q<%5/!p8k9r9jRMs60IDs5O%8s4m"pg=P`@!7gns!8RP8!;GXUJ,~> o`"p[roO49qUY`&q<%5/!p8h7r9jRMs60IEs5X+;s5*.ug=blC!7ptt!8RP8!;GXUJ,~> oD\gZroO49qUY`,n+Z\PqY1!_s7QB`s7?6\s7,LGg?n:k!8[G%!9*q>!;G[VJ,~> oD\gZroO49qUY`&q<%5/!p8k9r9jRMs60IDs5O%8s4m"pg=P`@!7gkr!9*q>!;G[VJ,~> oD\gZroO49qUY`&q<%5/!p8h7r9jRMs60IEs5X+;s5*.ug=blC!7pqs!9*q>!;G[VJ,~> o)A^YroO49qUY`,n+Z\PqY1!_s7QB`s7?6\s7,LGg?n:k!9!:T.OJ,~> o)A^YroO49qUY`&q<%5/!p8k9r9jRMs60IDs5O%8s4m"pg=P`@!7^eq!9*q>!:T.OJ,~> o)A^YroO49qUY`&q<%5/!p8h7r9jRMs60IEs5X+;s5*.ug=blC!7gkr!9*q>!:T.OJ,~> nc&UXroX%.!93JAqY'd[rq?Bbrq-6^rpp*ZmI8ismH=Q1pt#N)roO4Ll2Q8~> nc&UXroX%.!8RD4n`9i7m-OZrnmb2mFg4FmF)'bpt#N)roO4Ll2Q8~> nc&UXroX%.!8RD4n`9i7lg+K:rp0UJroX7@ro*n6mG-FKmF2-dpt#N)roO4Ll2Q8~> nG`UZk2tXuf)Y4,p\OU[p\smdp&=U`oD\=\na5i"mHs*;j7q4+h#?F9n*9q'~> nG`UZk2tXuf)Xe*k4.O7k3VI4mf)PPkl0]Dir7j8h!NeKfBq#eeG.Vqh#?F9n*9q'~> nG`UZk2tXuf)Xe*k4.O7k3M@2mf)PPkl0`Ej8S$;hX0+Pg$R8hebI_rh#?F9n*9q'~> n,ELYk2tXuf)Y4,p\OU[p\smdp&=U`oD\=\na5i"mHj$:h>,Y&h#6@8p[%p1~> n,ELYk2tXuf)Xe*k4.O7k3VI4mf)PPkl0]Dir7j8h!NeKfBgrdebResh#6@8p[%p1~> n,ELYk2tXuf)Xe*k4.O7k3M@2mf)PPkl0`Ej8S$;hX0+Pg$I2gf(mnth#6@8p[%p1~> mf3:K!9*b*!:B7LqY'd[rq?Bbrq-6^rpp*ZmI8ism-"H*q:>Z&iVqs>p[/!2~> mf3:K!9*b*!9*b9n`9i7m-OZrnmb2mFg4Fm*bsbq:>Z&iVqs>p[/!2~> mf3:K!9*b*!9*b9n`9i7lg+K:rp0UJroX7@ro*n6mG-FKm*l$dq:>Z&iVqs>p[/!2~> mf*:]roO4>q:>W6n+Z\PqY1!_s7QB`s7?6\s7,LGg?n7j!8[G%!9*q>!:T@UJ,~> mf*:]roO4>q:>W*q<%5/!p8k9r9jRMs60IDs5O%8s4m"pg=P]?!7gkr!9*q>!:T@UJ,~> mf*:]roO4>q:>W*q<%5/!p8h7r9jRMs60IEs5X+;s5*.ug=biB!7pqs!9*q>!:T@UJ,~> mJd1\roO4>q:>W6n+Z\PqY1!_s7QB`s7?6\s7,LGg?n7j!9!:TCVJ,~> mJd1\roO4>q:>W*q<%5/!p8k9r9jRMs60IDs5O%8s4m"pg=P]?!7^eq!9*q>!:TCVJ,~> mJd1\roO4>q:>W*q<%5/!p8h7r9jRMs60IEs5X+;s5*.ug=biB!7gkr!9*q>!:TCVJ,~> m/I([roO49q:G'/qY'd[rq?Bbrq-6^rpp*ZmI8ism-"H0pt#N$roO4LnGe"~> m/I([roO49q:GE(n`9i7m-OZrnmb2mFg4Fm*bsapt#N$roO4LnGe"~> m/I([roO49q:GE(n`9i7lg+K:rp0UJroX7@ro*n6mG-FKm*l$cpt#N$roO4LnGe"~> li-tZroO49qUY`,me?SOqY1!_s7QB`s7?6\s7,LGg?n7j!TW#3f)XV*joOrFo)F4~> li-tZroO49qUY`&pu_,.!p8k9r9jRMs60IDs5O%8s4m"pg=P]?!S#Zqf)XV*joOrFo)F4~> li-tZroO49qUY`&pu_,.!p8h7r9jRMs60IEs5X+;s5*.ug=biB!S,csf)XV*joOrFo)F4~> lMgkYroO49qUY`,me?SOqY1!_s7QB`s7?6\s7,LGg?n4i!8[J&!8RP8!;H*bJ,~> lMgkYroO49qUY`&pu_,.!p8k9r9jRMs60IDs5O%8s4m"pg=PZ>!7gns!8RP8!;H*bJ,~> lMgkYroO49qUY`&pu_,.!p8h7r9jRMs60IEs5X+;s5*.ug=bfA!7ptt!8RP8!;H*bJ,~> l2LbProO49qUY`,me?SOqY1!_s7QB`s7?6\s7,LGg?n4i!8[G%!9*q>!;H-cJ,~> l2LbProO49qUY`&pu_,.!p8k9r9jRMs60IDs5O%8s4m"pg=PZ>!7gkr!9*q>!;H-cJ,~> l2LbProO49qUY`&pu_,.!p8h7r9jRMs60IEs5X+;s5*.ug=bfA!7pqs!9*q>!;H-cJ,~> kl1YOroO49qUY`,me?SOqY1!_s7QB`s7?6\s7,LGg?n4i!9!:TU\J,~> kl1YOroO49qUY`&pu_,.!p8k9r9jRMs60IDs5O%8s4m"pg=PZ>!7^eq!9*q>!:TU\J,~> kl1YOroO49qUY`&pu_,.!p8h7r9jRMs60IEs5X+;s5*.ug=bfA!7gkr!9*q>!:TU\J,~> kPkPNroO49qUY`,me?SOqY1!_s7QB`s7?6\s7,LGg?n4i!9!:TX]J,~> kPkPNroO49qUY`&pu_,.!p8k9r9jRMs60IDs5O%8s4m"pg=PZ>!7^eq!9*q>!:TX]J,~> kPkPNroO49qUY`&pu_,.!p8h7r9jRMs60IEs5X+;s5*.ug=bfA!7gkr!9*q>!:TX]J,~> k5PGMroX%.!93G@qY'd[rq?Bbrq-6^rpp*ZmI8islf\?/pt#N$roO4Lp]#a~> k5PGMroX%.!8RA3n`9i7m-OZrnmb2mFg4FldGj`pt#N$roO4Lp]#a~> k5PGMroX%.!8RA3n`9i7lg+K:rp0UJroX7@ro*n6mG-FKldPpbpt#N$roO4Lp]#a~> jo5GOk2tXuf)Y4+p\OU[p\smdp&=U`oD\=\na5i"mHWm8h>,Y&h#?F9n+cp5~> jo5GOk2tXuf)Xe)k4.O7k3VI4mf)PPkl0]Dir7j8h!NeKfBUfbebResh#?F9n+cp5~> jo5GOk2tXuf)Xe)k4.O7k3M@2mf)PPkl0`Ej8S$;hX0+Pg$7&ef(mnth#?F9n+cp5~> jSo>Nk2tXuf)Y4+p\OU[p\smdp&=U`oD\=\na5i"mHWm8h>,Y&h#?F9p\Fi>~> jSo>Nk2tXuf)Xe)k4.O7k3VI4mf)PPkl0]Dir7j8h!NeKfBUfbebResh#?F9p\Fi>~> jSo>Nk2tXuf)Xe)k4.O7k3M@2mf)PPkl0`Ej8S$;hX0+Pg$7&ef(mnth#?F9p\Fi>~> j8],@!9*b*!:B4KqY'd[rq?Bbrq-6^rpp*ZmI8isn`Tu5rn[8!"5N&$n+m!6~> j8],@!9*b*!9*_8n`9i7m-OZrnmb2mFg4Fn^@Kfrmg\n"5N&$n+m!6~> j8],@!9*b*!9*_8n`9i7lg+K:rp0UJroX7@ro*n6mG-FKn^IQhrmpbo"5N&$n+m!6~> j8T,RroO4>q:>W6me?SOqY1!_s7QB`s7?6\s7,LGg?n\!rS?nns5j=Mq>Ys~> j8T,RroO4>q:>W*pu_,.!p8k9r9jRMs60IDs5O%8s4m"pg=Q,KrRL>fs5j=Mq>Ys~> j8T,RroO4>q:>W*pu_,.!p8h7r9jRMs60IEs5X+;s5*.ug=c8NrRUDgs5j=Mq>Ys~> ir9#QroO4>q:>W6me?SOqY1!_s7QB`s7?6\s7,LGg?eq)j8Rluf)sgjk3r-GJ,~> ir9#QroO4>q:>W*pu_,.!p8k9r9jRMs60IDs5O%8s4m"pg=HASeGe"^f)sgjk3r-GJ,~> ir9#QroO4>q:>W*pu_,.!p8h7r9jRMs60IEs5X+;s5*.ug=ZMVec+.`f)sgjk3r-GJ,~> iVroProO49q:G$.qY'd[rq?Bbrq-6^rpp*ZmI9'$rSQVd"5N&$n+m!6~> iVroProO49q:GB'n`9i7m-OZrnmb2mFf2)"5N&$n+m!6~> iVroProO49q:GB'n`9i7lg+K:rp0UJroX7@ro*n6mG-XQrRg,]"5N&$n+m!6~> i;WfOroO49qUY`,mJ$JNqY1!_s7QB`s7?6\s7,LGkj8B4rnlM_!8RS9q#>j~> i;WfOroO49qUY`&pZD#-!p8k9r9jRMs60IDs5O%8s4m"p^XiJ@roX"UJ,~> i;WfOroO49qUY`&pZD#-!p8h7r9jRMs60IEs5X+;s5*.ukLojegt)P]roX"UJ,~> hu<]NroO49qUY`,mJ$JNqY1!_s7QB`s7?6\s7,LGn*U)2f%9o`!:T^_J,~> hu<]NroO49qUY`&pZD#-!p8k9r9jRMs60IDs5O%8s4m"p^t8SJ!:T^_J,~> hu<]NroO49qUY`&pZD#-!p8h7r9jRMs60IEs5X+;s5*.un(IZlf%9o`!:T^_J,~> hZ!TEroO49qUY`,mJ$JNqY1!_s7QB`s7?6\s7,LGp[%tCrnlM_rn[\Ai;2%-iTB:kp]#a~> hZ!TEroO49qUY`&pZD#-!p8k9r9jRMs60IDs5O%8s4m"pcI`'P!UJ\?f)t!ok3r'EJ,~> hZ!TEroO49qUY`&pZD#-!p8h7r9jRMs60IEs5X+;s5*.up=]Gtgt2P^!UJ\?f)t!ok3r'EJ,~> h>[KDroO49qUY`,mJ$JNqY1!_s7QB`s7?6\s7,LGrpB[Ah:MY_!9O.E!V#=Lf)sgjk3r$DJ,~> h>[KDroO49qUY`&pZD#-!p8k9r9jRMs60IDs5O%8s4m"pf%9oX!9O.E!V#=Lf)sgjk3r$DJ,~> h>[KDroO49qUY`&pZD#-!p8h7r9jRMs60IEs5X+;s5*.urn78&h:MY_!9O.E!V#=Lf)sgjk3r$D J,~> h#@BCroO49qUY`,mJ$JNqY1!_s7QB`s7?6\s7,[L!9jF?gt2P^pZqhJqUYi)k2u.*s*t~> h#@BCroO49qUY`&pZD#-!p8k9r9jRMs60IDs5O%8s4m.trn-#XrndD8rp]d9"5N&$n+H^2~> h#@BCroO49qUY`&pZD#-!p8h7r9jRMs60IEs5X+;s5*>%!8IM+gt2P^pZqhJqUYi)k2u.*s*t~> g]%9BroX%.!93D?qY'd[rq?Bbrq-6^rpp*Zq=+@@h:DbbhVRAcli$;Qi;2()k4J\(~> g]%9BroX%.!8R>2n`9i7m-OZrnmb2q:Y`!h:DbbhVRAcli$;Qi;2()k4J\(~> g]%9BroX%.!8R>2n`9i7lg+K:rp0UJroX7@ro*n6q:tr%h:DbbhVRAcli$;Qi;2()k4J\(~> gA_9Dk2tXuf)Y4*p\OU[p\smdp&=U`oD\=\nGqePi7ur`h>c[,li$;Qi;2%-iTB:so`'F~> gA_9Dk2tXuf)Xe(k4.O7k3VI4mf)PPkl0]Dir7j8g]6%,f\G*Xh>c[,li$;Qi;2%-iTB:so`'F~> gA_9Dk2tXuf)Xe(k4.O7k3M@2mf)PPkl0`Ej8S$;h>l=0g"b3Yh>c[,li$;Qi;2%-iTB:so`'F~> g&D0Ck2tXuf)Y4*p\OU[p\smdp&=U`iW%ilfDaS+iqhj-lhg2Jf)sgjk3qpAJ,~> g&D0Ck2tXuf)Xe(k4.O7k3VI4mf)PPkl0]Dg]-!`fDaS+iqhj-lhg2Jf)sgjk3qpAJ,~> g&D0Ck2tXuf)Xe(k4.O7k3M@2mf)PPkl0`CgYLK\h#QI2kO@g7nG:`=gudbfoDa=~> f`1s5!9*b*!:B1JqY'd["8;*@iS<&ah=]t#lhU&If)sgjk3qm@J,~> f`1s5!9*b*!9*\7n`9i7m-OZ<"7,(*h;$W]h=]t#lhU&If)sgjk3qm@J,~> f`1s5!9*b*!9*\7n`9i7lg+K:"7,(*h;$W]h=]t#lhU&If)sgjk3qm@J,~> f`(sGroO4>q:>W6mJ$JNr:^3Yhq.k^!93P3n*Bf=!9!b+roO4To)F4~> f`(sGroO4>q:>W*pZD#-!p8k9rpBdLhq.k^!93P3n*Bf=!9!b+roO4To)F4~> f`(sGroO4>q:>W*pZD#-!p8h7rpBdLhq.k^!93P3n*Bf=!9!b+roO4To)F4~> fDbjFroO4>q:>W6mJ$JNrV$0n*B`;!9!e,"5N&$n+$F.~> fDbjFroO4>q:>W*pZD#-"m51 fDbjFroO4>q:>W*pZD#-"m5.:mdAuofDaP'ipc."lhBlKi;D1/gudbfnc++~> f)GaEroO49q:G!-qY's`!:B+(rn@G1q;Ul+nE]c:qpto)k2u15J,~> f)GaEroO49q:G?&n`9l8m-Np$fDaM)htc:#kO@g1nGCf=gudbgs*t~> f)GaEroO49q:G?&n`9l8lg*a"fDaM)htc:#kO@g1nGCf=gudbgs*t~> ec,XDroO49qUY`,m.^AM!VbUDfDaOripc.#lgsWCf)jpnn*p@-~> ec,XDroO49qUY`&p?(o,!p8k+n^mcpoA]9&nE]]8qpto.k3qg>J,~> ec,XDroO49qUY`&p?(o,!p8h*n^mcpoA]9&nE]]8qpto.k3qg>J,~> eGfOCroO49qUY`,m.^AMpXfDu!SlQ$ipc."lgsTGi;;.+joFl>s*t~> eGfOCroO49qUY`&p?(o,!9X%-rn7D.hXKOokO7a.n,VDDfDjt5n*p@-~> eGfOCroO49qUY`&p?(o,!9X%-rn7D.hXKOokO7a.n,VDDfDjt5n*p@-~> e,KF:roO49qUY`,m.^GO!93n-!8@>,nD`p"nE]W6!9!e,!o2r#n,In~> e,KF:roO49qUY`&p?(r-!8RJ'!8@>,nD`p"nE]W6!9!e,!o2r#n,In~> e,KF:roO49qUY`&p?(r-!8RJ'!8@>,nD`p"nE]W6!9!e,!o2r#n,In~> df0=9roO49qUY`,m.^JP!93q.!8@A-n)Ej"nE]Q4qpto)k3qd=J,~> df0=9roO49qUY`&p?(u.!8RM(!8@A-n)Ej"nE]Q4qpto)k3qd=J,~> df0=9roO49qUY`&p?(u.!8RM(!8@A-n)Ej"nE]Q4qpto)k3qd=J,~> dJj48roO49qUY`,m.^PR!:9U7!8@G/n)Ej"nE]K2qpto.k3qd=J,~> dJj48roO49qUY`&p?)&0!9*h,!8@G/n)Ej"nE]K2qpto.k3qd=J,~> dJj48roO49qUY`&p?)&0!9*h,!8@G/n)Ej"nE]K2qpto.k3qd=J,~> d/O+7roX%.!93A>!VYOMfDaXripc."lg=0Ai;;.+joFl=s*t~> d/O+7roX%.!8R;1p>l;0qq(i(nD`s#n*BB1!9!b+s5j=Mn,In~> d/O+7roX%.!8R;1p>l;0qq(i(nD`s#n*BB1!9!b+s5j=Mn,In~> ci4+9k2tXuf)Y4)p\WPCg>;>Yn)s3+lgOo4r7;&+k2u.$s*t~> ci4+9k2tXuf)Xe'k4e!7f)aU^nD`p"nE]E0!9!e,"5N&$n*g:,~> ci4+9k2tXuf)Xe'k4e!7f)aU^nD`p"nE]E0!9!e,"5N&$n*g:,~> cMn"8k2tXuf)Y4+pAjUXf)X^tipc.#lfmm=i;;.+joFl=s*t~> cMn"8k2tXuf)Xe'k5"*=iVV4,hsfXpkO@g%n,VDDfDjt5n*g:,~> cMn"8k2tXuf)Xe'k5"*=iVV4,hsfXpkO@g%n,VDDfDjt5n*g:,~> c2[e*!9*b*!:B7L!93n-n`''$nE]9,!9j=3s5j=Mn,In~> c2[e*!9*b*!9*Y6qW._4qq(AtnE9<,kO8K8qq(l1!:TCVJ,~> c2[e*!9*b*!9*Y6qW._4qq(AtnE9<,kO8K8qq(l1!:TCVJ,~> c2Req:>W6nFuh3!8I,)nE99+jm`0!!o2r,n,In~> c2Req:>W*p?)86qpti&oA]9&n*B*)qpto)k3qd=J,~> c2Req:>W*p?)86qpti&oA]9&n*B*)qpto)k3qd=J,~> bl7\;roO4>q:>W6nb;q4!8mJ/n)s3+j7!',r7;#*k2u.4J,~> bl7\;roO4>q:>W*p?);7qpti*p#>H'nE]-(!9!e,!o2r#n,In~> bl7\;roO4>q:>W*p?);7qpti*p#>H'nE]-(!9!e,!o2r#n,In~> bPqS:roO49q:G02qq(N#nE9<,iU?j*qq(l1!;H!_J,~> bPqS:roO49q:G<%rT3q.p#>K(nE]'&!9!b+s5j=UnGe"~> bPqS:roO49q:G<%rT3q.p#>K(nE]'&!9!b+s5j=UnGe"~> b5VJ9roO49qUY`,oCi7Eqq(T%nE99+i:$a1qq(l1!:TFWJ,~> b5VJ9roO49qUY`&p#c;9!8RJ'pYt]*n*Ap$!9j=3s5j=MnGe"~> b5VJ9roO49qUY`&p#c;9!8RJ'pYt]*n*Ap$!9j=3s5j=MnGe"~> ao;A8roO49qUY`,o_/@Fr7:r'q;Ul+nE]!$s7H3?!o2r#nGe"~> ao;A8roO49qUY`&p#Z;:h#,b(g\KjtkO@fpnGi.Xf)jaik4&D$~> ao;A8roO49qUY`&p#Z;:h#,b(g\KjtkO@fpnGi.Xf)jaik4&D$~> aSu8/roO49qUY`,p%JIGr7:r'qr7)-nE\s#rq$3Lr7;&+k2u.&s*t~> aSu8/roO49qUY`&p#Z80r7:r'qr7)-nE\s#rq$3Lr7;&+k2u.&s*t~> aSu8/roO49qUY`&p#Z80r7:r'qr7)-nE\s#rq$3Lr7;&+k2u.&s*t~> a8Z/.roO49qUY`,p@eRHr7:r'r8R5/nE\s#r:C!Jqq(i0!;H'aJ,~> a8Z/.roO49qUY`&p>uA1r7:r'r8R5/nE\s#r:C!Jqq(i0!;H'aJ,~> a8Z/.roO49qUY`&p>uA1r7:r'r8R5/nE\s#r:C!Jqq(i0!;H'aJ,~> `r?&-roO49qUY`,p\4R:!8IM4nE99+hsgL7!:0O6"5N&$n+-L/~> `r?&-roO49qUY`&pZDA)!8IM4nE99+hsgL7!:0O6"5N&$n+-L/~> `r?&-roO49qUY`&pZDA)!8IM4nE99+hsgL7!:0O6"5N&$n+-L/~> `W#r,roX%.!93eJqq(l-n)s3+hsgC4qUYi.k2uF0s*t~> `W#r,roX%.!8RA3qq(l-n)s3+hsgC4qUYi.k2uF0s*t~> `W#r,roX%.!8RA3qq(l-n)s3+hsgC4qUYi.k2uF0s*t~> `;]r.k2tXuf)Y46p\WPBipc.#le_.)oDmkHf)jpnk4AV'~> `;]r.k2tXuf)Xe*k53a1ipc.#le_.)oDmkHf)jpnk4AV'~> `;]r.k2tXuf)Xe*k53a1ipc.#le_.)oDmkHf)jpnk4AV'~> _uBi-k2tXuf)Y47p\WS4kO@fonFQ8PiVV4/gudbfo`'F~> _uBi-k2tXuf)Xe+k53d#kO@fonFQ8PiVV4/gudbfo`'F~> _uBi-k2tXuf)Xe+k53d#kO@fonFQ8PiVV4/gudbfo`'F~> _Z0Vt!9*b*!:B^Y!93n-oB5T.hsg1.!:0L5"5N&$n+H^2~> _Z0Vt!9*b*!9*k _Z0Vt!9*b*!9*k _Z'W1roO4>q:>W6r:g*?o]P`0hXL"+!:0L5"6&D)n+Qd3~> _Z'W1roO4>q:>W*r9!n.o]P`0hXL"+!:0L5"6&D)n+Qd3~> _Z'W1roO4>q:>W*r9!n.o]P`0hXL"+!:0L5"6&D)n+Qd3~> _>aN0roO4>q:>W6rV-3@p?1r2hXKn(!9*e+"6&D)n+Zj4~> _>aN0roO4>q:>W*rT="/p?1r2hXKn(!9*e+"6&D)n+Zj4~> _>aN0roO4>q:>W*rT="/p?1r2hXKn(!9*e+"6&D)n+Zj4~> _#FE/roO49q:GT>qq(W+nE\s#l1=u7qpti'roO4Tq#>j~> _#FE/roO49q:GT-qq(W+nE\s#l1=u7qpti'roO4Tq#>j~> _#FE/roO49q:GT-qq(W+nE\s#l1=u7qpti'roO4Tq#>j~> ^]+<.roO49qUY`,rqH ^]+<.roO49qUY`&roX+0!8[P8n*Am#kO\c?qUY`&roX"UJ,~> ^]+<.roO49qUY`&roX+0!8[P8n*Am#kO\c?qUY`&roX"UJ,~> ^Ae3-roO49qUYi/p\3\Ff)XY)kO@fonEKTEiV;",iTB:kq>Ys~> ^Ae3-roO49qUYi)k2tIsf)XY)kO@fonEKTEiV;",iTB:kq>Ys~> ^Ae3-roO49qUYi)k2tIsf)XY)kO@fonEKTEiV;",iTB:kq>Ys~> ^&J*$roO49qUYf.pYu,&!8[Y;nE\s#mdpMFro*G""5N&$n+m!6~> ^&J*$roO49qUYf(k1omd!8[Y;nE\s#mdpMFro*G""5N&$n+m!6~> ^&J*$roO49qUYf(k1omd!8[Y;nE\s#mdpMFro*G""5N&$n+m!6~> ]`/!#roO49qUbc,r7:u*kO7`onFH5NiTo(tgudbfq>Ys~> ]`/!#roO49qUbc&r7:u*kO7`onFH5NiTo(tgudbfq>Ys~> ]`/!#roO49qUbc&r7:u*kO7`onFH5NiTo(tgudbfq>Ys~> ]Dhm"roO49o@NKthsgC4!:0XCjjsUik2u..s*t~> ]Dhm"roO49o@NKthsgC4!:0XCjjsUik2u..s*t~> ]Dhm"roO49o@NKthsgC4!:0XCjjsUik2u..s*t~> ])Md!roWh(o'>0%r:L!Ihq&"diTB:sq>Ys~> ])Md!roWh(o'>0%r:L!Ihq&"diTB:sq>Ys~> ])Md!roWh(o'>0%r:L!Ihq&"diTB:sq>Ys~> \c2d#k2tXpf)Xq*le_+2li,l!fDaP*iVqs>n+cp5~> \c2d#k2tXpf)Xq*le_+2li,l!fDaP*iVqs>n+cp5~> \c2d#k2tXpf)Xq*le_+2li,l!fDaP*iVqs>n+cp5~> \Gl["k2tXqf)X\$lf7L6i7ur`g]6=/joFlEs*t~> \Gl["k2tXqf)X\$lf7L6i7ur`g]6=/joFlEs*t~> \Gl["k2tXqf)X\$lf7L6i7ur`g]6=/joFlEs*t~> \,ZHi!9*V&q!7/5!9jF?h:MV\oB$&ApA]X~> \,ZHi!9*V&q!7/5!9jF?h:MV\oB$&ApA]X~> \,ZHi!9*V&q!7/5!9jF?h:MV\oB$&ApA]X~> \,QI&roO4>p=B<$qs3V \,QI&roO4>p=B<$qs3V \,QI&roO4>p=B<$qs3V [f6@%roO4>pX]E%rTj"C!9jF?h:MV\o&fr?!;Gm\J,~> [f6@%roO4>pX]E%rTj"C!9jF?h:MV\o&fr?!;Gm\J,~> [f6@%roO4>pX]E%rTj"C!9jF?h:MV\o&fr?!;Gm\J,~> [Jp7$roO49pXfE1p@/(>gt2P\!9*P3rU8nKJ,~> [Jp7$roO49pXfE1p@/(>gt2P\!9*P3rU8nKJ,~> [Jp7$roO49pXfE1p@/(>gt2P\!9*P3rU8nKJ,~> [/U.#roO49pt#N&qsXULrnuVarS6u+rpKj]i;\<~> [/U.#roO49pt#N&qsXULrnuVarS6u+rpKj]i;\<~> [/U.#roO49pt#N&qsXULrnuVarS6u+rpKj]i;\<~> Zi:%"roO49pt,N'gt2P\!9*P3rU8G>J,~> Zi:%"roO49pt,N'gt2P\!9*P3rU8G>J,~> Zi:%"roO49pt,N'gt2P\!9*P3rU8G>J,~> ZMspnroO49f[p)Wo&fr?!;FtBJ,~> ZMspnroO49f[p)Wo&fr?!;FtBJ,~> ZMspnroO49f[p)Wo&fr?!;FtBJ,~> Z2XgmroO49hq.k_!9*P3rU7u1J,~> Z2XgmroO49hq.k_!9*P3rU7u1J,~> Z2XgmroO49hq.k_!9*P3rU7u1J,~> Yl=^lroO49kL][fo&fr?!;FM5J,~> Yl=^lroO49kL][fo&fr?!;FM5J,~> Yl=^lroO49kL][fo&fr?!;FM5J,~> YQ"UkroWV"rnIM4oB-#?^]/f~> YQ"UkroWV"rnIM4oB-#?^]/f~> YQ"UkroWV"rnIM4oB-#?^]/f~> Y5\Umk2tXqfDXLqk5OfLpUU Y5\Umk2tXqfDXLqk5OfLpUU Y5\Umk2tXqfDXLqk5OfLpUU XoAOmk2tXXrR_&(!9*P3rU7&lJ,~> XoAOmk2tXXrR_&(!9*P3rU7&lJ,~> XoAOmk2tXXrR_&(!9*P3rU7&lJ,~> XT.\MrpKj]XT*e~> XT.\MrpKj]XT*e~> XT.\MrpKj]XT*e~> XT&=qn+PoBn"p&7~> XT&=qn+PoBn"p&7~> XT&=qn+PoBn"p&7~> WrN+froX4K!;E,cJ,~> WrN+froX4K!;E,cJ,~> WrN+froX4K!;E,cJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> JcELbJ,~> %%EndData showpage %%Trailer end %%EOF semantik-0.9.5/src/templates/beamer/beamermindist/art/beamericonbook.20.pdf000664 000000 000000 00000005256 12732552614 026662 0ustar00rootroot000000 000000 %PDF-1.3 5 0 obj << /Length 317 /Filter /FlateDecode >> stream xT;N0}cgA(8@ Vh(7I {a~ls;gEƍ!#; Mz[A@_1(G alr[bN]Y$R bt->S5 SH$I9cB^)H3# QlUg7UX+]QAb^Q?)z6otE %~HtO:*Z⺌ӼkZomr9uvD3VIa%IO,jٌh1yZ퇣endstream endobj 4 0 obj << /Type /Page /Contents 5 0 R /Resources 3 0 R /MediaBox [0 0 13.948 11.955] /Parent 6 0 R >> endobj 1 0 obj << /Type /XObject /Subtype /Form /BBox [0 0 7.97 19.925] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 7 0 R /Length 15 /Filter /FlateDecode >> stream xP(endstream endobj 7 0 obj << /Shading << /Sh << /ShadingType 2 /ColorSpace /DeviceRGB /Domain [0.0 7.9701] /Coords [0.0 0 7.9701 0] /Function << /FunctionType 3 /Domain [0.0 7.9701] /Functions [ << /FunctionType 2 /Domain [0.0 7.9701] /C0 [0.968 0.9 0.9] /C1 [0.964 0.896 0.896] /N 1 >> << /FunctionType 2 /Domain [0.0 7.9701] /C0 [0.964 0.896 0.896] /C1 [0.966 0.932 0.93] /N 1 >> << /FunctionType 2 /Domain [0.0 7.9701] /C0 [0.966 0.932 0.93] /C1 [0.966 0.932 0.93] /N 1 >> << /FunctionType 2 /Domain [0.0 7.9701] /C0 [0.966 0.932 0.93] /C1 [0.938 0.85 0.86] /N 1 >> << /FunctionType 2 /Domain [0.0 7.9701] /C0 [0.938 0.85 0.86] /C1 [0.89 0.81 0.81] /N 1 >> ] /Bounds [ 1.79326 1.89288 2.09215 2.98878] /Encode [0 1 0 1 0 1 0 1 0 1] >> /Extend [false false] >> >> /ProcSet [ /PDF ] >> endobj 2 0 obj << /Type /XObject /Subtype /Form /BBox [0 0 9.963 4.981] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 8 0 R /Length 15 /Filter /FlateDecode >> stream xP(endstream endobj 8 0 obj << /Shading << /Sh << /ShadingType 2 /ColorSpace /DeviceRGB /Domain [0.0 4.98131] /Coords [0 0.0 0 4.98131] /Function << /FunctionType 3 /Domain [0.0 4.98131] /Functions [ << /FunctionType 2 /Domain [0.0 4.98131] /C0 [0.956 0.956 0.956] /C1 [0.92 0.92 0.92] /N 1 >> << /FunctionType 2 /Domain [0.0 4.98131] /C0 [0.92 0.92 0.92] /C1 [0.85 0.85 0.85] /N 1 >> ] /Bounds [ 2.49065] /Encode [0 1 0 1] >> /Extend [false false] >> >> /ProcSet [ /PDF ] >> endobj 3 0 obj << /XObject << /Fm1 1 0 R /Fm2 2 0 R >> /ProcSet [ /PDF ] >> endobj 6 0 obj << /Type /Pages /Count 1 /Kids [4 0 R] >> endobj 9 0 obj << /Type /Catalog /Pages 6 0 R >> endobj 10 0 obj << /Producer (pdfTeX-0.14h) /Creator (TeX) /CreationDate (D:20031027233800) >> endobj xref 0 11 0000000000 65535 f 0000000514 00000 n 0000001494 00000 n 0000002158 00000 n 0000000404 00000 n 0000000009 00000 n 0000002234 00000 n 0000000712 00000 n 0000001692 00000 n 0000002291 00000 n 0000002340 00000 n trailer << /Size 11 /Root 9 0 R /Info 10 0 R >> startxref 2435 %%EOF semantik-0.9.5/src/templates/beamer/beamermindist/art/beamericonbook.eps000664 000000 000000 00000051343 12732552614 026456 0ustar00rootroot000000 000000 %!PS-Adobe-3.0 EPSF-3.0 %%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner %%Title: /n/mappazza/home4/algo/tantau/texmf/tex/latex/classes/latex-beamer/beamericonbook.eps %%CreationDate: Thu Oct 16 20:39:49 2003 %%DocumentData: Clean7Bit %%LanguageLevel: 2 %%Pages: 1 %%BoundingBox: 14 14 29 27 %%EndComments %%BeginProlog % Use own dictionary to avoid conflicts 10 dict begin %%EndProlog %%Page: 1 1 % Translate for offset 14.173228 14.173228 translate % Translate to begin of first scanline 0.000000 12.000000 translate 13.920000 -12.000000 scale % Image geometry 116 100 8 % Transformation matrix [ 116 0 0 100 0 0 ] % Strings to hold RGB-samples per scanline /rstr 116 string def /gstr 116 string def /bstr 116 string def {currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} {currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} {currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} true 3 %%BeginData: 20153 ASCII Bytes colorimage NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> ci4!qrMfkJ`W(G~> ci4!qrMfkJ`W(G~> ci4!qrMfkJ`W(G~> eGoNJq0rCE`rCP~> eGoNJq0rCE`rCP~> eGoNJq0rCE`rCP~> gA_0'ri5jFr_ gA_0'ri5jFr_ gA_0'ri5jFr_ huE\UqgSZZ9hk@<"&48pe]IiA~> huE\UqgSZZ9hk@<"&48pe]IiA~> huE\UqgSZZ9hk@<"&48pe]IiA~> jo5>2ri5jFr_;o="&48pWlk?l~> jo5>2ri5jFr_;o="&48pWlk?l~> jo5>2ri5jFr_;o="&48pWlk?l~> lMpj`qgSZZ9hjk.!bQq^bQ!(~> lMpj`qgSZZ9hjk.!bQq^bQ!(~> lMpj`qgSZZ9hjk.!bQq^bQ!(~> nG`L=ri5jFr_;f:"]8*4Lh]``1BM0 nG`L=ri5jFr_;f:"YD8O*[<351BM0 nG`L=ri5jFr_;f:"YMAT,:+o=1BM0 p&G#kqgSZZ9hk%3s&/tsNfO*sreLT/:]*!NAq-i2cMrC~> p&G#kqgSZZ9hk%3s"4@),:!12rZ2([/,V1*Aq-i2cMrC~> p&G#kqgSZZ9hk%3s"FL-.4P6CrZ_Fc/Gq:+Aq-i2cMrC~> qZ$Ppqg\T>mPFlC!d'ZkrfR2?repc3!JO>I1BU@$J(;mFJ,~> qZ$Ppqg\T>mPFks!\5ZIr[.UhrZV7^!? qZ$Ppqg\T>ln\\s0/*;Ur[IgnrZ_Fc/Gq:+9n.ZCci8L~> r;QcIrI4l\9hk%3"^"i-Ssu5KR/W?LOoCC?MuJM5KkgNA"&48pe^4>H~> r;QcIrI4l\9hk"2s"XX0/h[,Rr[@amrZhCcrZ2([,Q'>"9n.ZCd/SU~> r;QcIrI4l\9hk%3"ZA4q3Arep1]B',/H.*t-N54j+!ph@"&48pe^4>H~> r;ZeH!);l;"'SiWV#I(eT)Y;ZR/W?LOoCC?MuJM5KkgNA"&3BWWmUis~> r;ZeH!);l;"#Vnm2?#E20`Nd)/,gsr-N57h+oWM`*$bA;"&3BWWmUis~> r;ZeH!);l;"$&;%5Q3eE3WD#:1]B',/H.*t-N54j+!ph@"&3BWWmUis~> rVlr!InfMjs',V0WiH&rrhTOergs.Zrg<\LrfR2?repc3!JP:c1BM0 rVlr!InfMjs#1!;3]d7"r\a[2r\4@)r[[srr[.UhrZV7^!? rVlr!InfMjs#U9C7RmAEr]gBEr]1!:r\OO,r[e$tr[.Uh!?WWb1BM0 rVlnuJ+k`%?s\VmYl:d(WrApqV#I(eT)Y;ZR/W?LOoCC?MuJP4K`FpH1BM0 rVlnuJ+k`%5<:kj5Q3hF3rV,<2?#E20`Nd)/,gsr-N57h+oWP_)uqMe1BM0 rVlnuJ+k`%69[e29`@W_7fGdS5Q3eE3WD#:1]B',/H.*t-N57i*rmki1BM0 rVlnJB)OLkB4b_n_S*OjZi73.Xo>@"VuELkU&LY`S,SfSPl?gENrFt9M#W//:]*!N9n.ZCec1.~> rVlnJB)OLk rVlnJB)OLkN30E*O%.K1[n,QAhc/Gq:+9n.ZCec1.~> rr3&"Infnu$>Il4bf@Z=]t1_[rilC(ri5sqrhTOergs.Zrg<\LrfR2?repc3s+LGKr%eFLIt-#" s*t~> rr3&"Infnu$ rr3&"Infnu$ rr<"JrA+hReBlLba2Gj.]"#*GYl:d(WrApqV#I(eT)Y;ZR/W?LOoCC?MuJP4K`Glc1BU@$J#_-# J,~> rr<"JrA+h4W1K?;JU2BJ>uaDo5Q3hF3rV,<2?#E20`Nd)/,gsr-N57h+oWP_)uq5]1BU@$J#_-# J,~> rr<"JrA+h3VOa'9KRS/]ARAC89`@W_7fGdS5Q3eE3WD#:1]B',/H.*t-N57i*rmVb1BU@$J#_-# J,~> rr3"K:&ZpXB[bJ\d*BkU`594!\?l1=riQ1"rhoakrh9=_s-s"TrfmDErf6u9reUT.!,DBe!bQq^ f`-I~> rr3"K:&ZpX9qA5]SsPOiH?3V& rr3"K:&ZpX9q/#WSX5IlIX#X>?W6qtr^m)Yr^6ZLr]L0?s#0j4r\+7%r[IgnrZhFb!%%Lu!bQq^ f`-I~> s8N/NInfnu%VX;>eC;jjbf@Z=]t1_[rilC(ri5sqrhTOergs.Zrg<\LrfR2?repc3s+LJg:AcmL Aq-i6s*t~> s8N/NInfnu%SM>CW2Q;SOF__!A6i2*r]gBFr]:$ s8N/NInfnu%SM>AVP]oNObA1.CLpjOr_3;_r^QlSr]gBEr]1!:r\OO,r[e$tr[.UhruV7f/,V1) Aq-i6s*t~> s8N/#Infnu&"V.se'umocHO>I_S*OjZi73.Xo>@"VuELkU&LY`S,SfSPl?gENrFt9M#N).:AcmM Aq-i2g])d~> s8N/#Infnu%qBs:SZ&KYQ]QcEF(AQV8,baP4oRMA3;tf71]B*.0)dC#./kRm,Q8kc*r[,Z.f;() Aq-i2g])d~> s8N/#Infnu%qBs:S#3'RQ]ZrMG\^kt;uTJi8cD3Y6iK=L4T7A@2Z>N30E*O%.K1[n,Q8bb/,V1* Aq-i2g])d~> s8N,"J,M2%dL=USeBlLba2Gj.]"#*GYl:d(WrApqV#I(eT)Y;ZR/W?LOoCC?MuJP3K`FmG1BU@$ J( s8N,"J,M2&HOYLrW2Q;SOF__!A6i2*r]gBFr]:$ s8N,"J,M2&HOYLpVP]oNObA1.CLpjOr_3;_r^QlSr]gBEr]1!:r\OO,r[e$tr[.UhrZ;+jr%eFL It-#(s*t~> s8N,"J,M2$dL=USeBlLba2Gj.]"#*GYl:d(WrApqV#I(eT)Y;ZR/W?LOoCC?MuJP3K`Gfa1BU@$ J( s8N,"J,M2%HOYLrW2Q;SOF__!A6i2*r]gBFr]:$ s8N,"J,M2%HOYLpVP]oNObA1.CLpjOr_3;_r^QlSr]gBEr]1!:r\OO,r[e$tr[.UhrZ;+br%eFL It-#)s*t~> s8N,"J,M/'eGR`'e'umocHO>I_S*OjZi73.Xo>@"VuELkU&LY`S,SfSPl?gENrFt9M#N).B`'Xg 9kJmThZ&*~> s8N,"J,M/'IJnL%J=WX;SsPOiH?3V& s8N,"J,M/'IJnL%J=EF5SX5IlIX#X>?W6qtr^m)Yr^6ZLr]L0?s#0j4r\+7%r[IgnrZhCa!$hCt "&3BWWo!c+~> s8N,"J,M2'eGR`'e'umocHO>I_S*OjZi73.Xo>@"VuELkU&LY`S,SfSPl?gENrFt9M#N).B_sRe Aq-i s8N,"J,M2'IJnL%J=WX;SsPOiH?3V& s8N,"J,M2'IJnL%J=EF5SX5IlIX#X>?W6qtr^m)Yr^6ZLr]L0?s#0j4r\+7%r[IgnrZhCa!$h@s !bQq^huA3~> s8N,"J,M2&eGR`'e'umocHO>I_S*OjZi73.Xo>@"VuELkU&LY`S,SfSPl?gENrFt9M#N)/Jkl5" !bQq^i;\<~> s8N,"J,M2&IJnL%J=WX;SsPOiH?3V& s8N,"J,M2&IJnL%J=EF5SX5IlIX#X>?W6qtr^m)Yr^6ZLr]L0?s#0j4r\+7%r[IgnrZhCa!? s8N,"J,M2%eGR`'e'umocHO>I_S*OjZi73.Xo>@"VuELkU&LY`S,SfSPl?gENrFt9M#N)/Jkl5" "&48pe`-UZ~> s8N,"J,M2%IJnL%J=WX;SsPOiH?3V& s8N,"J,M2%IJnL%J=EF5SX5IlIX#X>?W6qtr^m)Yr^6ZLr]L0?s#0j4r\+7%r[IgnrZhCa!? s8N,"J,M2$eGR`'e'umocHO>I_S*OjZi73.Xo>@"VuELkU&LY`S,SfSPl?gENrFt9M#N)/Jkl5" "&48pe`6[[~> s8N,"J,M2$IJnL%J=WX;SsPOiH?3V& s8N,"J,M2$IJnL%J=EF5SX5IlIX#X>?W6qtr^m)Yr^6ZLr]L0?s#0j4r\+7%r[IgnrZhCa!? s8N/#Infnu!29>?r6c#&eC;jjbf@Z=]t1_[rilC(ri5sqrhTOergs.Zrg<\LrfR2?repc3re1B) B`'Xg9n.YmjSs`~> s8N/#Infnu!+u.WrHf!(SZ&KYQ]QcEF(AQV8,baP4oRMA3;tf71]B*.0)dC#./kRm,Q8kc*r[,[ )'So6"&48pWoX21~> s8N/#Infnu!+u.WrHf!(S#3'RQ]ZrMG\^kt;uTJi8cD3Y6iK=L4T7A@2Z>N30E*O%.K1[n,Q8bc *$bA;"&48pWoX21~> s8N/NInfnu!G^6aeGR`'e'umocHO>I_S*OjZi73.Xo>@"VuELkU&LY`S,SfSPl?gENrFt9M#N)/ JnY$;!bQq^jo9i~> s8N/NInfnu!DS(AIJnL%J=WX;SsPOiH?3V& s8N/NInfnu!DS(AIJnL%J=EF5SX5IlIX#X>?W6qtr^m)Yr^6ZLr]L0?s#0j4r\+7%r[IgnrZhCa !? rr3"K:&ZpMC=h)8eGR`'e'umocHO>I_S*OjZi73.Xo>@"VuELkU&LY`S,SfSPl?gENrFt9M#N)0 JnRpW1BM03~> rr3"K:&ZpM9n.ZjIJnL%J=WX;SsPOiH?3V& rr3"K:&ZpM9n.ZjIJnL%J=EF5SX5IlIX#X>?W6qtr^m)Yr^6ZLr]L0?s#0j4r\+7%r[IgnrZhCa !ZWF8r%eCdJ#_Z2J,~> rr<"JrA+MKf@TrMr6c#&eC;jjbf@Z=]t1_[rilC(ri5sqrhTOergs.Zrg<\LrfR2?repc3re:B( !)EGJ"(m%_e`d$`~> rr<"JrA+LeIt.BErHf!(SZ&KYQ]QcEF(AQV8,baP4oRMA3;tf71]B*.0)dC#./kRm,Q8kc*r[/Z )#u/a1BV6=Wn$>5J,~> rr<"JrA+LeIt.BErHf!(S#3'RQ]ZrMG\^kt;uTJi8cD3Y6iK=L4T7A@2Z>N30E*O%.K1[n,Q8eb )uqMe1BV6=Wn$>5J,~> rr3&"Infnu!,DMbr7(Ym%+E_Ud*BkU`594!\?l1=riQ1"rhoakrh9=_s-s"TrfmDErf6u9reUQ- s+15Gr%eFLIt-#5s*t~> rr3&"Infnu!)uaDo5Q3hF3rV,<2?#E20`Nd)/,gsr-N57h+oWP^ *<-lV.f;()9n.ZCl2Q8~> rr3&"Infnu!) rVlnJB)OOafDO.rdL=USeBlLba2Gj.]"#*GYl:d(WrApqV#I(eT)Y;ZR/W?LOoCC?MuJP3L&Z`) B`'Xg9n.ZClMlA~> rVlnJB)OOaJ,F`nHOYLrW2Q;SOF__!A6i2*r]gBFr]:$ rVlnJB)OOaJ,F`nHOYLpVP]oNObA1.CLpjOr_3;_r^QlSr]gBEr]1!:r\OO,r[e$tr[.UhrZD.[ !$hCt"&48pea!0b~> rVlnuJ,M/'CAlc^eGR`'e'umocHO>I_S*OjZi73.Xo>@"VuELkU&LY`S,SfSPl?gENrFt9M#N,. JcKK^1BU?`J#_i7J,~> rVlnuJ,M/':&TS>IJnL%J=WX;SsPOiH?3V& rVlnuJ,M/':&TS>IJnL%J=EF5SX5IlIX#X>?W6qtr^m)Yr^6ZLr]L0?s#0j4r\+7%r[IgnrZhCa ru;"`r%eFLAq-iHs*t~> rVlr!Infkt!,DJar7(Ym%+E_Ud*BkU`594!\?l1=riQ1"rhoakrh9=_s-s"TrfmDErf6u9reUQ- s+15aq_J:cJ#_l8J,~> rVlr!Infkt!)uaDo5Q3hF3rV,<2?#E20`Nd)/,gsr-N57h+oWP^ *<-lV+o=%sAq-iIs*t~> rVlr!Infkt!) r;ZeH!) r;ZeH!)uaDo5Q3hF3rV,<2?#E20`Nd)/,gsr-N57h+oWP^ *<$fU.Jtt'Aq-iJs*t~> r;ZeH!) r;QiKIqJU7!29ACr7(Ym%+E_Ud*BkU`594!\?l1=riQ1"rhoakrh9=_s-s"TrfmDErf6u9reUQ- rdk,Er%eFLIt-#;s*t~> r;QiKIqJU7!+u1Zr-eNj%=k"JW1K?;JU2BJ>uaDo5Q3hF3rV,<2?#E20`Nd)/,gsr-N57h+oWP^ *<$fU.Jtt(9n.ZCn,In~> r;QiKIqJU7!+u1Zr-eNj%=jqFVOa'9KRS/]ARAC89`@W_7fGdS5Q3eE3WD#:1]B',/H.*t-N57h +9!5[.f;()9n.ZCn,In~> qu6`JIqJU7!29ACr7(Ym%+E_Ud*BkU`594!\?l1=riQ1"rhoakrh9=_s-s"TrfmDErf6u9reUQ- rdk,Er%eFLIt-# qu6`JIqJU7!+u1Zr-eNj%=k"JW1K?;JU2BJ>uaDo5Q3hF3rV,<2?#E20`Nd)/,gsr-N57h+oWP^ *<$fU.Jtt(9n.ZCnGe"~> qu6`JIqJU7!+u1Zr-eNj%=jqFVOa'9KRS/]ARAC89`@W_7fGdS5Q3eE3WD#:1]B',/H.*t-N57h +9!5[.f;()9n.ZCnGe"~> qYpWIIqJU7!29ACr7(Ym%+E_Ud*BkU`594!\?l1=riQ1"rhoakrh9=_s-s"TrfmDErf6u9reUQ- rdk,^r%eFLIt+Kgs*t~> qYpWIIqJU7!+u1Zr-eNj%=k"JW1K?;JU2BJ>uaDo5Q3hF3rV,<2?#E20`Nd)/,gsr-N57h+oWP^ *<$fU+T+"t9n.Ymnc++~> qYpWIIqJU7!+u1Zr-eNj%=jqFVOa'9KRS/]ARAC89`@W_7fGdS5Q3eE3WD#:1]B',/H.*t-N57h +9!5[+oF+u9n.Ymnc++~> q>UMrIqJU7!29ACr7(Ym%+E_Ud*BkU`594!\?l1=riQ1"rhoakrh9=_s-s"TrfmDErf6u9reUQ- rdk,^q_J:cJ#`)>J,~> q>UMrIqJU7!+u1Zr-eNj%=k"JW1K?;JU2BJ>uaDo5Q3hF3rV,<2?#E20`Nd)/,gsr-N57h+oWP^ *<$fU+T!qrAq-iOs*t~> q>UMrIqJU7!+u1Zr-eNj%=jqFVOa'9KRS/]ARAC89`@W_7fGdS5Q3eE3WD#:1]B',/H.*t-N57h +9!5[+o=%sAq-iOs*t~> q#:DqIqJU7!29ACr7(Ym%+E_Ud*BkU`594!\?l1=riQ1"rhoakrh9=_s-s"TrfmDErf6u9reUQ- rdk/_:&HdKAq-iPs*t~> q#:DqIqJU7!+u1Zr-eNj%=k"JW1K?;JU2BJ>uaDo5Q3hF3rV,<2?#E20`Nd)/,gsr-N57h+oWP^ *<$fV+=[4E!bQq^oDa=~> q#:DqIqJU7!+u1Zr-eNj%=jqFVOa'9KRS/]ARAC89`@W_7fGdS5Q3eE3WD#:1]B',/H.*t-N57h +9!5\+Y*CG!bQq^oDa=~> p\t;pIqJU7!29ACr7(Ym%+E_Ud*BkU`594!\?l1=riQ1"rhoakrh9=_s-s"TrfmDErf6u9reUQ- rdk0#:&HdLAq-i2p&BO~> p\t;pIqJU7!+u1Zr-eNj%=k"JW1K?;JU2BJ>uaDo5Q3hF3rV,<2?#E20`Nd)/,gsr-N57h+oWP^ *<$fV(Ff8<"(m%_eb/rm~> p\t;pIqJU7!+u1Zr-eNj%=jqFVOa'9KRS/]ARAC89`@W_7fGdS5Q3eE3WD#:1]B',/H.*t-N57h +9!5\)(PP?"(m%_eb/rm~> pAY2oInfkt!,DG`r7(Ym%+E_Ud*BkU`594!\?l1=riQ1"rhoakrh9=_s-s"TrfmDErf6u9reUQ- rdk0#:&HdL9n.ZCpA]X~> pAY2oInfkt!)uaDo5Q3hF3rV,<2?#E20`Nd)/,gsr-N57h+oWP^ *<$fV(Ff8<"&48peb9#n~> pAY2oInfkt!) p&>)nInfkt!,DG`r7(Ym%+E_Ud*BkU`594!\?l1=riQ1"rhoakrh9=_s-s"TrfmDErf6u9reUQ- rdk0#B)FFe9n.ZCp]#a~> p&>)nInfkt!)uaDo5Q3hF3rV,<2?#E20`Nd)/,gsr-N57h+oWP^ *<$fV(EiW3"&48pebB)o~> p&>)nInfkt!) o`"umInfkt!,DG`r7(Ym%+E_Ud*BkU`594!\?l1=riQ1"rhoakrh9=_s-s"TrfmDErf6u9reUQ- rdk0#B)FFe9kJmTq#>j~> o`"umInfkt!)uaDo5Q3hF3rV,<2?#E20`Nd)/,gsr-N57h+oWP^ *<$fV(EiW3"&3BWWqcUE~> o`"umInfkt!) o`#$DIt(2k1B;1ffDO.rdL=USeBlLba2Gj.]"#*GYl:d(WrApqV#I(eT)Y;ZR/W?LOoCC?MuJP3 L&QZ)IqJR6!bQq^q>Ys~> o`#$DIt(2k1B:/IJ,F`nHOYLrW2Q;SOF__!A6i2*r]gBFr]:$cmU1BM0 o`#$DIt(2k1B:/IJ,F`nHOYLpVP]oNObA1.CLpjOr_3;_r^QlSr]gBEr]1!:r\OO,r[e$tr[.Uh rZD+Z!?!'X1BM0 oD\pCIt(2k1B;1ffDO.rdL=USeBlLba2Gj.]"#*GYl:d(WrApqV#I(eT)Y;ZR/W?LOoCC?MuJP3 L&Q](IfN4@1BM0 oD\pCIt(2k1B:/IJ,F`nHOYLrW2Q;SOF__!A6i2*r]gBFr]:$ oD\pCIt(2k1B:/IJ,F`nHOYLpVP]oNObA1.CLpjOr_3;_r^QlSr]gBEr]1!:r\OO,r[e$tr[.Uh rZD+Zrttedr%eCdJ#`AFJ,~> o)AgBIt(2k1B;1ffDO.rdL=USeBlLba2Gj.]"#*GYl:d(WrApqV#I(eT)Y;ZR/W?LOoCC?MuJP3 L&Q](IfN4@1BU@$J(=JsJ,~> o)AgBIt(2k1B:/IJ,F`nHOYLrW2Q;SOF__!A6i2*r]gBFr]:$ o)AgBIt(2k1B:/IJ,F`nHOYLpVP]oNObA1.CLpjOr_3;_r^QlSr]gBEr]1!:r\OO,r[e$tr[.Uh rZD+Zrttedr%eFLIt-#Hs*t~> nc&[@IqJU7!29>Br7(Ym%+E_Ud*BkU`594!\?l1=riQ1"rhoakrh9=_s-s"TrfmDErf6u9reUQ- rdt0"!) nc&[@IqJU7!+u.Yr-eNj%=k"JW1K?;JU2BJ>uaDo5Q3hF3rV,<2?#E20`Nd)/,gsr-N57h+oWP^ *<$iU(B>o^1BL:#Wr2mI~> nc&[@IqJU7!+u.Yr-eNj%=jqFVOa'9KRS/]ARAC89`@W_7fGdS5Q3eE3WD#:1]B',/H.*t-N57h +9!8[)#u/a1BL:#Wr2mI~> nG`R?IqJU7!29>Br7(Ym%+E_Ud*BkU`594!\?l1=riQ1"rhoakrh9=_s-s"TrfmDErf6u9reUQ- s+1;I9hkL@!_n0prVqB~> nG`R?IqJU7!+u.Yr-eNj%=k"JW1K?;JU2BJ>uaDo5Q3hF3rV,<2?#E20`Nd)/,gsr-N57h+oWP^ *<-lX.OchD1BL:#ec#Mu~> nG`R?IqJU7!+u.Yr-eNj%=jqFVOa'9KRS/]ARAC89`@W_7fGdS5Q3eE3WD#:1]B',/H.*t-N57h +9*;^.k3%G1BL:#ec#Mu~> n,EI>IqJU7!29>Br7(Ym%+E_Ud*BkU`594!\?l1=riQ1"rhoakrh9=_s-s"TrfmDErf6u9")Le1 :\6FDJ#`JIJ,~> n,EI>IqJU7!+u.Yr-eNj%=k"JW1K?;JU2BJ>uaDo5Q3hF3rV,<2?#E20`Nd)/,gsr-N57h+Tj#A /1^?K!Iq-Js*t~> n,EI>IqJU7!+u.Yr-eNj%=jqFVOa'9KRS/]ARAC89`@W_7fGdS5Q3eE3WD#:1]B',/H.*t-3GYJ /M-NM!Iq-Js*t~> mf*?gIqJU7!29>Br7(Ym%+E_Ud*BkU`594!\?l1=riQ1"rhoakrh9=_s-s"TrfmGF!`MupmP=l< J,K=s~> mf*?gIqJU7!+u.Yr-eNj%=k"JW1K?;JU2BJ>uaDo5Q3hF3rV,<2?#E20`Nd)/,gss-3>eO/abCq 9n3*@J,~> mf*?gIqJU7!+u.Yr-eNj%=jqFVOa'9KRS/]ARAC89`@W_7fGdS5Q3eE3WD#:1]B'-/-7LY0CCUs 9n3*@J,~> mJd6fIqJU7!29>Br7(Ym%+E_Ud*BkU`594!\?l1=riQ1"rhoakrh9=_s-j+7 mJd6fIqJU7!+u.Yr-eNj%=k"JW1K?;JU2BJ>uaDo5Q3hF3rV,<2?#E20`Na-/MJk3kVN6gr;V9~> mJd6fIqJU7!+u.Yr-eNj%=jqFVOa'9KRS/]ARAC89`@W_7fGdS5Q3eE3WD#:1B9/n1]Mt&s*t~> m/I-eIqJU7!29>Br7(Ym%+E_Ud*BkU`594!\?l1=riQ1"rhoak"//h!=6h[B;Z]ou m/I-eIqJU7!+u.Yr-eNj%=k"JW1K?;JU2BJ>uaDo5Q3hF3rV,<2?#B31@$ar;Z]ou m/I-eIqJU7!+u.Yr-eNj%=jqFVOa'9KRS/]ARAC89`@W_7fGdS56F#+2DseVs&/tu li.$dInfkt!,DD_r7(Ym%+E_Ud*BkU`594!\?l1=riQ4#!/(8SlSAiD;,VFsPEqW, li.$dInfkt!)uaDo5Q3hG3WM/=2=!%):f1,2Ocu*!S6#SE!_n0E qu;0~> li.$dInfkt!)^Q3U8I-:f1,2Ocu*!S6#SE!_n0E qu;0~> lMgpcInfkt!,DD_r7(Ym&C].Yd*BkU`594!\?iDF?!Q\O%no\m:PO[`NfK6cQC4/2H2TN#9n02> s*t~> lMgpcInfkt!)uaBZr\s.!%no\m:PO[`NfK6cQC4/2H2TN#9n02> s*t~> lMgpcInfkt!) l2LgbInfkt!,DD_r7(Ym$.IDRd*Bk$A7K'61D*2N94NC#K7eo7MiNg[PEqN&rgWsirA4J'q>Ys~> l2LgbInfkt!) l2LgbInfkt!) l2Lk9It(2k1B;1efDO.rdK@tJe=>n^s$m#Y&or,=GC"[fJ:iT4Mi3UXPEV<#rga"\rA+LeJ(=Ap J,~> l2Lk9It(2k1B:/HJ,F`nHN\kiW2P(11]KrE7hTibGB\@]J:N9,Ll71OOctupRJr`VTD^PIAq/A, s*t~> l2Lk9It(2k1B:/HJ,F`nHN\kgVP\\,1]KrE7hTibGB\@]J:N9,Ll71OOctupRJr`VTD^PIAq/A, s*t~> kl1b8It(2k1B;1efDO.rdK.hHnh^;5)am_ACi"$1F`hnSI=6WuL5:YDNffHfQC4/2SGo,\IJkr& J#`;DJ,~> kl1b8It(2k1B:/HJ,F`nHNJ_gW:DbE6Q8EoC2@^)EclMKH@:3lK8,2 kl1b8It(2k1B:/HJ,F`nHNJ_eVXcPC6Q8EoC2@^)EclMKH@:3lK8,2 kPkY7It(2k1B;1efDO.rdK""W1]KZ^5XA^_@:X"cC2@g/EclSPH@: kPkY7It(2k1B:/HJ,F`nHNAXuq(r%8+@&5!?=@AWC2.R'EcQ;HH?t!iK8,,:MiNg[PEqW)S=KSN s.TKqr\FUMJ(=>oJ,~> kPkY7It(2k1B:/HJ,F`nHNAXtq(r%8+@&5!?=@AWC2.R'EcQ;HH?t!iK8,,:MiNg[PEqW)S=KSN s.TKqr\FUMJ(=>oJ,~> k5PM5IqJU7!29;Ar7(\n!,2?f,@(`KB4ksqDf9Z=GC"R`J:iK/Ll71OOcu)sRJr`V TDkPcV-3dR!DS( k5PM5IqJU7!+u+Xr-eNj!)@(`KB4ksqDf9Z=GC"R`J:iK/Ll71OOcu)sRJr`V TDkPcV-3dR!DS( k5PM5IqJU7!+u+Xr-eNj!)@(`KB4ksqDf9Z=GC"R`J:iK/Ll71OOcu)sRJr`V TDkPcV-3dR!DS( jo5D4IqJU7!29;Ar7(bp!1j'E+])*<=^,*:@:Wn]C2@^)EclSMH@: jo5D4IqJU7!+u+Xr-eTl!+Ys`+])*<=^,*:@:Wn]C2@^)EclSMH@: jo5D4IqJU7!+u+Xr-eTl!+Ys`+])*<=^,*:@:Wn]C2@^)EclSMH@: jSo;3IqJU7!29;Ar6tbqB`9e45#tfh>@(`HA7oXlCi=?:Fa&.[I=Qs)L5:bJOcbinR@0S8rh'4b rh]XnrA+J(WqZOD~> jSo;3IqJU7!+u+Xr-\Tm9E$^l5#tfh>@(`HA7oXlCi=?:Fa&.[I=Qs)L5:bJOcbinR@0S8rh'4b rh]XnrA+J(WqZOD~> jSo;3IqJU7!+u+Xr-\Tm9E$^l5#tfh>@(`HA7oXlCi=?:Fa&.[I=Qs)L5:bJOcbinR@0S8rh'4b rh]XnrA+J(WqZOD~> j8T1\IqJU7!29;Ar7([$+\PsB?=%&NB4ksqDfTl@GC"R`J:iT2Ll7:ROcu)sR@KfHTDkSbV>dCn Wr4^SJ#`8CJ,~> j8T1\IqJU7!+u+Xr-eN"+\PsB?=%&NB4ksqDfTl@GC"R`J:iT2Ll7:ROcu)sR@KfHTDkSbV>dCn Wr4^SJ#`8CJ,~> j8T1\IqJU7!+u+Xr-eN"+\PsB?=%&NB4ksqDfTl@GC"R`J:iT2Ll7:ROcu)sR@KfHTDkSbV>dCn Wr4^SJ#`8CJ,~> ir9([IqJU7!29;ArmUq?rA4IX)dZr`B4ksqDf9Z=GB\@]J:iK/Ll71OOctupRJr`VTDkSaV>mLn Wr4aRJ+rtn~> ir9([IqJU7!+u+Xrd=cXrA4IX)dZr`B4ksqDf9Z=GB\@]J:iK/Ll71OOctupRJr`VTDkSaV>mLn Wr4aRJ+rtn~> ir9([IqJU7!+u+Xrd=cXrA4IX)dZr`B4ksqDf9Z=GB\@]J:iK/Ll71OOctupRJr`VTDkSaV>mLn Wr4aRJ+rtn~> iVrtZIqJU7!29;As3q$_r\GN[?=@ATB527!DfTuCGC"[fJ:iT4Ll7:UOcu*!rg`t[s.]Lhs/>ps s/c9+r\FRLJ+rtn~> iVrtZIqJU7!+u+Xs*Xl@r\GN[?=@ATB527!DfTuCGC"[fJ:iT4Ll7:UOcu*!rg`t[s.]Lhs/>ps s/c9+r\FRLJ+rtn~> iVrtZIqJU7!+u+Xs*Xl@r\GN[?=@ATB527!DfTuCGC"[fJ:iT4Ll7:UOcu*!rg`t[s.]Lhs/>ps s/c9+r\FRLJ+rtn~> i;WkYInfkt!,DA^!Rti_1EAhkA7oXlCi=?7Fa&.[I=Qs)L5:bJOcbinR@0S8rh'4brh]Ums/Q(# !O,l/1BL:#WqcUE~> i;WkYInfkt!)<<>!I[Z@1EAhkA7oXlCi=?7Fa&.[I=Qs)L5:bJOcbinR@0S8rh'4brh]Ums/Q(# !O,l/1BL:#WqcUE~> i;WkYInfkt!)<<>!I[Z@1EAhkA7oXlCi=?7Fa&.[I=Qs)L5:bJOcbinR@0S8rh'4brh]Ums/Q(# !O,l/1BL:#WqcUE~> huO) M>]42J#`;DJ,~> hu!)3AJ),t6]C2@g/EclSPH@:O) M>]42J#`;DJ,~> hu!)3AJ),t6]C2@g/EclSPH@:O) M>]42J#`;DJ,~> hZ!YWInfkt!,DD_!,DKh(M@K!Df9Z=GB\@]J:N9,Ll71OOctupRJr`VTDkSaV>mLnWrK4#Yl;!- 1BM0 hZ!YWInfkt!)mLnWrK4#Yl;!- 1BM0 hZ!YWInfkt!)mLnWrK4#Yl;!- 1BM0 hZ!].It(2k1B;1ffDRN*C_L`-F`hnSI=Qj#L5:YDNffHfQC7`Brh'4brh]Xnri5t"s02L/s0_o8 rA4J'!7grGJ,~> hZ!].It(2k1B:/IJ,M2'C_L`-F`hnSI=Qj#L5:YDNffHfQC7`Brh'4brh]Xnri5t"s02L/s0_o8 rA4J'!7grGJ,~> hZ!].It(2k1B:/IJ,M2'C_L`-F`hnSI=Qj#L5:YDNffHfQC7`Brh'4brh]Xnri5t"s02L/s0_o8 rA4J'!7grGJ,~> h>[T-It(2k1B;1gfDRK@DfTl@GC"[cJ:iT2Ll7:ROcu*!R@KfHTDkSbV>dFnWrB.#Yl;!.[K3pu rA+LLJ#`AFJ,~> h>[T-It(2k1B:/JJ,M/=DfTl@GC"[cJ:iT2Ll7:ROcu*!R@KfHTDkSbV>dFnWrB.#Yl;!.[K3pu rA+LLJ#`AFJ,~> h>[T-It(2k1B:/JJ,M/=DfTl@GC"[cJ:iT2Ll7:ROcu*!R@KfHTDkSbV>dFnWrB.#Yl;!.[K3pu rA+LLJ#`AFJ,~> h#@K,It(2k1B;1hfDRKR)Zi7E4\H0?O rA+LLJ#`DGJ,~> h#@K,It(2k1B:/KJ,M/9EclSPH@:R)Zi7E4\H0?O rA+LLJ#`DGJ,~> h#@K,It(2k1B:/KJ,M/9EclSPH@:R)Zi7E4\H0?O rA+LLJ#`DGJ,~> g]%?*IqJU7!hn5trA4It%XNPRJ:iT4Mi3UXPEV<#rga"\rhBCgs/>pss/l:)rj2X5rji'As1\PC rA+LeJ(=JsJ,~> g]%?*IqJU7!bQq3rA4It%XNPRJ:iT4Mi3UXPEV<#rga"\rhBCgs/>pss/l:)rj2X5rji'As1\PC rA+LeJ(=JsJ,~> g]%?*IqJU7!bQq3rA4It%XNPRJ:iT4Mi3UXPEV<#rga"\rhBCgs/>pss/l:)rj2X5rji'As1\PC rA+LeJ(=JsJ,~> gA_6)IqJU7!MS-D1D+q]I=Qs)LkptLOcbinR@0S8rh'4brh]Ums/Q(#s02L/s0hp;rk/9Gs2"Uh s*stHJ,~> gA_6)IqJU7!G6i[1D+q]I=Qs)LkptLOcbinR@0S8rh'4brh]Ums/Q(#s02L/s0hp;rk/9Gs2"Uh s*stHJ,~> gA_6)IqJU7!G6i[1D+q]I=Qs)LkptLOcbinR@0S8rh'4brh]Ums/Q(#s02L/s0hp;rk/9Gs2"Uh s*stHJ,~> g&D-(IqJU7!MO9-1CnnaK8,,:MiNg[PEqN&S=KSNrhBFhri#jsriQ1(s0M^5s1/-A"M^(.@q5Bl !_n0ErVqB~> g&D-(IqJU7!G5(*1CnnaK8,,:MiNg[PEqN&S=KSNrhBFhri#jsriQ1(s0M^5s1/-A"M^(.@q5Bl !_n0ErVqB~> g&D-(IqJU7!G5(*1CnnaK8,,:MiNg[PEqN&S=KSNrhBFhri#jsriQ1(s0M^5s1/-A"M^(.@q5Bl !_n0ErVqB~> f`)#QIqJU7!,DKh$Vl>/Ll71OOcu)sRJr`VTDkSbV>dFmWrK4#YlD'/[f?t!L91BL:#Wr;sJ~> f`)#QIqJU7!)/Ll71OOcu)sRJr`VTDkSbV>dFmWrK4#YlD'/[f?t!L91BL:#Wr;sJ~> f`)#QIqJU7!)/Ll71OOcu)sRJr`VTDkSbV>dFmWrK4#YlD'/[f?t!L91BL:#Wr;sJ~> fDboPIqJL4#u?A5MiNp`PEqX9SGo/\UAh"hW;`grXoGX*ZNH%k?XW:X!_n0ErVqB~> fDboPIqJL4#u?A5MiNp`PEqX9SGo/\UAh"hW;`grXoGX*ZNH%k?XW:X!_n0ErVqB~> fDboPIqJL4#u?A5MiNp`PEqX9SGo/\UAh"hW;`grXoGX*ZNH%k?XW:X!_n0ErVqB~> f)GfOIqJO5$;cY@OcbinR@0S8rh'4brh]Ums/Q(#s'5V2lSJN7!bQq^r;V9~> f)GfOIqJO5$;cY@OcbinR@0S8rh'4brh]Ums/Q(#s'5V2lSJN7!bQq^r;V9~> f)GfOIqJO5$;cY@OcbinR@0S8rh'4brh]Ums/Q(#s'5V2lSJN7!bQq^r;V9~> ec,]NInfbq#EFq1QBmr/SGo/[UAq(hVuqZV>[6SNr_<6=!35qrJ,~> ec,]NInfbq#EFq1QBmr/SGo/[UAq(hVuqZV>[6SNr_<6=!35qrJ,~> ec,]NInfbq#EFq1QBmr/SGo/[UAq(hVuqZV>[6SNr_<6=!35qrJ,~> eGfTMInfer"&kDLRJr`VTDkPeV--r)lSJN7!+u(Wri,tKq#>j~> eGfTMInfer"&kDLRJr`VTDkPeV--r)lSJN7!+u(Wri,tKq#>j~> eGfTMInfer"&kDLRJr`VTDkPeV--r)lSJN7!+u(Wri,tKq#>j~> e,KKLInfer!1EhV"J:$B=BOlFr_<3 e,KKLInfer!1EhV"J:$B=BOlFr_<3 e,KKLInfer!1EhV"J:$B=BOlFr_<3 e,KO#It(2j1]LMA1]C)KB)7#VWW:T8s*t~> e,KO#It(2j1]LMA1]C)KB)7#VWW:T8s*t~> e,KO#It(2j1]LMA1]C)KB)7#VWW:T8s*t~> df0F"It(2Y1]C,EJ,ZJ/s*t~> df0F"It(2Y1]C,EJ,ZJ/s*t~> df0F"It(2Y1]C,EJ,ZJ/s*t~> dJj=!It(2a1]C)KB)7#VWW:T+s*t~> dJj=!It(2a1]C)KB)7#VWW:T+s*t~> dJj=!It(2a1]C)KB)7#VWW:T+s*t~> d/O0tIqJL4r_<3 d/O0tIqJL4r_<3 d/O0tIqJL4r_<3 ci4'sIt.Gl!+u(Wri,tKdJn^~> ci4'sIt.Gl!+u(Wri,tKdJn^~> ci4'sIt.Gl!+u(Wri,tKdJn^~> cMmpqWr.AGWlk?l~> cMmpqWr.AGWlk?l~> cMmpqWr.AGWlk?l~> bl7[n_uG5~> bl7[n_uG5~> bl7[n_uG5~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> NW4M~> %%EndData showpage %%Trailer end %%EOF semantik-0.9.5/src/templates/beamer/beamermindist/art/beamericonbook.pdf000664 000000 000000 00000005153 12732552614 026436 0ustar00rootroot000000 000000 %PDF-1.3 5 0 obj << /Length 298 /Filter /FlateDecode >> stream xTn ~09N=B&SONc0L9F pqoO~몲c9#㬧Ϻ2c&>c;נŧ9J$QtTg@* Jf6r [H@RT$S!\Y!V`3q > endobj 1 0 obj << /Type /XObject /Subtype /Form /BBox [0 0 7.97 19.925] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 7 0 R /Length 15 /Filter /FlateDecode >> stream xP(endstream endobj 7 0 obj << /Shading << /Sh << /ShadingType 2 /ColorSpace /DeviceRGB /Domain [0.0 7.9701] /Coords [0.0 0 7.9701 0] /Function << /FunctionType 3 /Domain [0.0 7.9701] /Functions [ << /FunctionType 2 /Domain [0.0 7.9701] /C0 [0.84 .5 .5] /C1 [0.82 .48 .48] /N 1 >> << /FunctionType 2 /Domain [0.0 7.9701] /C0 [0.82 .48 .48] /C1 [0.83 .66 .65] /N 1 >> << /FunctionType 2 /Domain [0.0 7.9701] /C0 [0.83 .66 .65] /C1 [0.83 .66 .65] /N 1 >> << /FunctionType 2 /Domain [0.0 7.9701] /C0 [0.83 .66 .65] /C1 [0.69 .25 .3] /N 1 >> << /FunctionType 2 /Domain [0.0 7.9701] /C0 [0.69 .25 .3] /C1 [0.45 0.05 0.05] /N 1 >> ] /Bounds [ 1.79326 1.89288 2.09215 2.98878] /Encode [0 1 0 1 0 1 0 1 0 1] >> /Extend [false false] >> >> /ProcSet [ /PDF ] >> endobj 2 0 obj << /Type /XObject /Subtype /Form /BBox [0 0 9.963 4.981] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 8 0 R /Length 15 /Filter /FlateDecode >> stream xP(endstream endobj 8 0 obj << /Shading << /Sh << /ShadingType 2 /ColorSpace /DeviceRGB /Domain [0.0 4.98131] /Coords [0 0.0 0 4.98131] /Function << /FunctionType 3 /Domain [0.0 4.98131] /Functions [ << /FunctionType 2 /Domain [0.0 4.98131] /C0 [0.78 .78 .78] /C1 [0.60 .60 .60] /N 1 >> << /FunctionType 2 /Domain [0.0 4.98131] /C0 [0.60 .60 .60] /C1 [0.25 .25 .25] /N 1 >> ] /Bounds [ 2.49065] /Encode [0 1 0 1] >> /Extend [false false] >> >> /ProcSet [ /PDF ] >> endobj 3 0 obj << /XObject << /Fm1 1 0 R /Fm2 2 0 R >> /ProcSet [ /PDF ] >> endobj 6 0 obj << /Type /Pages /Count 1 /Kids [4 0 R] >> endobj 9 0 obj << /Type /Catalog /Pages 6 0 R >> endobj 10 0 obj << /Producer (pdfTeX-0.14h) /Creator (TeX) /CreationDate (D:20031016202900) >> endobj xref 0 11 0000000000 65535 f 0000000495 00000 n 0000001438 00000 n 0000002091 00000 n 0000000385 00000 n 0000000009 00000 n 0000002167 00000 n 0000000693 00000 n 0000001636 00000 n 0000002224 00000 n 0000002273 00000 n trailer << /Size 11 /Root 9 0 R /Info 10 0 R >> startxref 2368 %%EOF semantik-0.9.5/src/templates/beamer/beamermindist/art/beamericonbook.tex000664 000000 000000 00000005467 12732552614 026475 0ustar00rootroot000000 000000 \documentclass[12pt]{article} \usepackage{pgf,pgfshade} \usepackage{xxcolor} \usepackage[papersize={14pt,12pt},hmargin=0pt,vmargin=0pt,headsep=0pt,nohead,nofoot]{geometry} \pagestyle{empty} \begin{document}% \begin{colormixin}{100}% \pgfdeclarehorizontalshading{cover}{20pt}{% rgb(0pt)=(0.84,.5,.5); rgb(1.8pt)=(0.82,.48,.48); rgb(1.9pt)=(0.83,.66,.65); rgb(2.1pt)=(0.83,.66,.65); rgb(3pt)=(0.69,.25,.3); rgb(8pt)=(0.45,0.05,0.05)}% % \pgfdeclareverticalshading{side}{10pt}{% rgb(0pt)=(0.78,.78,.78); rgb(2.5pt)=(0.60,.60,.60); rgb(5pt)=(0.25,.25,.25)}% \noindent\hbox{% \begin{pgfpicture}{0pt}{1pt}{14pt}{11pt} \pgfsetxvec{\pgfpoint{1pt}{0pt}} \pgfsetyvec{\pgfpoint{0pt}{1pt}} \pgfsetlinewidth{0.4pt} \pgfsetroundjoin \pgfsetlinewidth{0.8pt} \color[gray]{0.5} \pgfmoveto{\pgfxy(6.5,11.5)} \pgflineto{\pgfxy(1,10.5)} \pgfcurveto{\pgfxy(0.6,9.75)}{\pgfxy(0.6,8.75)}{\pgfxy(1,8)} \pgflineto{\pgfxy(6.5,2)} \pgflineto{\pgfxy(13,3)} \pgfcurveto{\pgfxy(12,4)}{\pgfxy(12,5)}{\pgfxy(13,6)} \pgfclosepath \pgfmoveto{\pgfxy(6.5,2)} \pgfcurveto{\pgfxy(6,3)}{\pgfxy(6,4)}{\pgfxy(6.5,5)} \pgflineto{\pgfxy(13,6)} \pgfstroke \begin{pgfscope} \pgfmoveto{\pgfxy(6.5,11.5)} \pgflineto{\pgfxy(1,10.5)} \pgfcurveto{\pgfxy(0.6,9.75)}{\pgfxy(0.6,8.75)}{\pgfxy(1,8)} \pgflineto{\pgfxy(6.5,2)} \pgfcurveto{\pgfxy(6,3)}{\pgfxy(6,4)}{\pgfxy(6.5,5)} \pgflineto{\pgfxy(13,6)} \pgfclosepath \pgfclip \pgfputat{\pgfxy(8.5,0)} {% \begin{pgfrotateby}{\pgfdegree{45}} \pgfbox[left,base]{\pgfuseshading{cover}} \end{pgfrotateby} } \end{pgfscope} \begin{pgfscope} \pgfmoveto{\pgfxy(6.5,2)} \pgfcurveto{\pgfxy(6,3)}{\pgfxy(6,4)}{\pgfxy(6.5,5)} \pgflineto{\pgfxy(13,6)} \pgfcurveto{\pgfxy(12,5)}{\pgfxy(12,4)}{\pgfxy(13,3)} \pgfclosepath \pgfclip \pgfputat{\pgfxy(7.5,0)} {% \begin{pgfrotateby}{\pgfdegree{30}} \pgfbox[left,base]{\pgfuseshading{side}} \end{pgfrotateby} } \end{pgfscope} \pgfsetlinewidth{0.4pt} \color[gray]{0.2} \pgfmoveto{\pgfxy(6.5,11.5)} \pgflineto{\pgfxy(1,10.5)} \pgfcurveto{\pgfxy(0.6,9.75)}{\pgfxy(0.6,8.75)}{\pgfxy(1,8)} \pgflineto{\pgfxy(6.5,2)} \pgflineto{\pgfxy(13,3)} \pgfcurveto{\pgfxy(12,4)}{\pgfxy(12,5)}{\pgfxy(13,6)} \pgfclosepath \pgfmoveto{\pgfxy(6.5,2)} \pgfcurveto{\pgfxy(6,3)}{\pgfxy(6,4)}{\pgfxy(6.5,5)} \pgflineto{\pgfxy(13,6)} \pgfstroke \end{pgfpicture}% }% \end{colormixin}% \end{document} semantik-0.9.5/src/templates/beamer/beamermindist/beamer.cls000664 000000 000000 00000025431 12732552614 024135 0ustar00rootroot000000 000000 \RequirePackage{beamerbasercs} \def\beamer@version{3.00} \ProvidesClassRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamer.cls,v 1.54 2004/10/07 20:05:51 tantau Exp $ [release version \beamer@version\space A class for typesetting presentations] % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \RequirePackage{beamerbasemodes} % Setup modes and check for article option \beamer@transferifnecessary % % % Declarations used by beamer % % % Public \newdimen\headheight % Total height of the headline (including depth) \newdimen\headdp % Depth of the headline \newdimen\footheight % Height of the footline \newdimen\sidebarheight % Height of the sidebars % Private \newdimen\beamer@tempdim \newdimen\beamer@finalheight \newdimen\beamer@animht \newdimen\beamer@animdp \newdimen\beamer@animwd \newdimen\beamer@leftmargin \newdimen\beamer@rightmargin \newdimen\beamer@leftsidebar \newdimen\beamer@rightsidebar \newdimen\beamer@boxsize \newdimen\beamer@vboxoffset \newdimen\beamer@descdefault \newdimen\beamer@descriptionwidth \newskip\beamer@lastskip \newbox\beamer@areabox \newbox\beamer@animcurrent \newbox\beamer@animshowbox \newbox\beamer@sectionbox \newbox\beamer@logobox \newbox\beamer@linebox \newcount\beamer@sectioncount \newcount\beamer@subsectionmax \newcount\beamer@sectionmax \newcount\beamer@totalheads \newcount\beamer@headcounter \newcount\beamer@partstartpage \newcount\beamer@sectionstartpage \newcount\beamer@subsectionstartpage \newcount\beamer@animationtempa \newcount\beamer@animationtempb \newcount\beamer@xpos \newcount\beamer@ypos \newcount\beamer@showpartnumber \newcount\beamer@currentsubsection \newcount\beamer@coveringdepth \newcount\beamer@sectionadjust \newcount\beamer@tocsectionnumber \newif\ifbeamer@sansmath \newif\ifbeamer@altmode \newif\ifbeamer@notes \newif\ifbeamer@notesnormals \newif\ifbeamer@compress \newif\ifbeamer@centered \newif\ifbeamer@draftmode \newif\ifbeamer@suppressreplacements % decides whether fonts should be substituted \newif\ifbeamer@frameswithnotesonly \newif\ifbeamer@ignorenonframe \newif\ifbeamer@autopdfinfo \RequirePackage{beamerbaseoptions} % For option management % % % Document options % % \beamer@suppressreplacementsfalse \beamer@altmodefalse \beamer@notesfalse \beamer@notesnormalstrue \beamer@compressfalse \beamer@draftmodefalse \beamer@frameswithnotesonlyfalse \beamer@ignorenonframefalse \beamer@autopdfinfotrue \DeclareOptionBeamer{usepdftitle}[true]{\csname beamer@autopdfinfo#1\endcsname} \DeclareOptionBeamer{envcountsect}{\beamer@countsecttrue} \DeclareOptionBeamer{notheorems}{\beamer@blocksfalse} \DeclareOptionBeamer{noamsthm}{\beamer@blocksfalse\beamer@amsfalse} \DeclareOptionBeamer{compress} {\beamer@compresstrue} \DeclareOptionBeamer{t}{\beamer@centeredfalse} \DeclareOptionBeamer{c}{\beamer@centeredtrue} \DeclareOptionBeamer{leqno}{\input{leqno.clo}} \DeclareOptionBeamer{fleqn}{\input{fleqn.clo}} \def\beamer@currentmode{beamer} \DeclareOptionBeamer{handout}{\gdef\beamer@currentmode{handout}} \DeclareOptionBeamer{trans}{\gdef\beamer@currentmode{trans}} \DeclareOptionBeamer{notes}[show]{\csname beamer@notesaction@#1\endcsname} \def\beamer@notesaction@hide{% \beamer@notesfalse} \def\beamer@notesaction@show{% \beamer@notestrue} \def\beamer@notesaction@only{% \beamer@notestrue \beamer@notesnormalsfalse \nofiles } \def\beamer@notesaction@onlyslideswithnotes{% \beamer@notestrue% \beamer@frameswithnotesonlytrue% \nofiles } \DeclareOptionBeamer{pdftex}{}% Used by hyperref \DeclareOptionBeamer{nativepdf}{}% Used by hyperref \DeclareOptionBeamer{pdfmark}{}% Used by hyperref \DeclareOptionBeamer{dvips}{}% Used by hyperref \DeclareOptionBeamer{dviwindo}{}% Used by hyperref \DeclareOptionBeamer{dvipsone}{}% Used by hyperref \DeclareOptionBeamer{vtex}{}% Used by hyperref \DeclareOptionBeamer{ps2pdf}{}% Used by hyperref \DeclareOptionBeamer{ignorenonframetext}{\beamer@ignorenonframetrue} \def\beamer@size{{size11.clo}} \DeclareOptionBeamer{bigger}{\def\beamer@size{{size12.clo}}} \DeclareOptionBeamer{smaller}{\def\beamer@size{{size10.clo}}} \DeclareOptionBeamer{8pt}{\def\beamer@size{{size8.clo}}} \DeclareOptionBeamer{9pt}{\def\beamer@size{{size9.clo}}} \DeclareOptionBeamer{10pt}{\def\beamer@size{{size10.clo}}} \DeclareOptionBeamer{11pt}{\def\beamer@size{{size11.clo}}} \DeclareOptionBeamer{12pt}{\def\beamer@size{{size12.clo}}} \DeclareOptionBeamer{14pt}{\def\beamer@size{{size14.clo}}} \DeclareOptionBeamer{17pt}{\def\beamer@size{{size17.clo}}} \DeclareOptionBeamer{20pt}{\def\beamer@size{{size20.clo}}} \DeclareOptionBeamer{draft}{\beamer@draftmodetrue} \def\insertpagenumber{\thepage} \def\beamer@activecjk{} \def\beamer@hypercjk{} \DeclareOptionBeamer{CJK}{\ExecuteOptionsBeamer{cjk}} \DeclareOptionBeamer{cjk}{ \def\beamer@hypercjk{\hypersetup{CJKbookmarks=true}} \def\beamer@activecjk{ % Activate all >128 characters. \count@=127 \@whilenum\count@<255 \do{% \advance\count@ by 1 \lccode`\~=\count@ \catcode\count@=\active \lowercase{\def~{\kern1ex}} } } } % obsolete options \DeclareOptionBeamer{inrow}{ \ClassError{beamer}{``inrow'' no longer supported. Use ``compress'' instead.}{}} \DeclareOptionBeamer{compressnotes}{% \ClassWarning{beamer}{``compressnotes'' is obsolete. Use \noexpand\setbeamertemplate{note page}[compressed] instead} \AtBeginDocument{\beamertemplatenotecompress}} \DeclareOptionBeamer{notesonly}{ \ClassWarning{beamer}{``notesonly'' is obsolete. Use notes=only instead} \beamer@notesaction@only} \DeclareOptionBeamer{blue}{ \ClassWarning{beamer}{``blue'' is obsolete. Use color theme structure instead} \def\beamer@loadlater{\usecolortheme[rgb={0.2,0.2,0.7}]{structure}}} \DeclareOptionBeamer{red}{ \ClassWarning{beamer}{``red'' is obsolete. Use color theme structure instead} \def\beamer@loadlater{\usecolortheme[rgb={0.7,0.2,0.2}]{structure}}} \DeclareOptionBeamer{blackandwhite}{ \ClassWarning{beamer}{``blackandwhite'' is obsolete. Use color theme structure instead} \def\beamer@loadlater{\usecolortheme[rgb={0.2,0.2,0.2}]{structure}}} \DeclareOptionBeamer{brown}{ \ClassWarning{beamer}{``brown'' is obsolete. Use color theme structure instead} \def\beamer@loadlater{\usecolortheme[rgb={0.66,0.4,0.166}]{structure}}} \DeclareOptionBeamer{slidescentered}{ \ClassWarning{beamer}{``slidescentered'' is obsolete. Use ``c'' instead} \beamer@centeredtrue} \DeclareOptionBeamer{slidestop}{ \ClassWarning{beamer}{``slidestop'' is obsolete. Use ``t'' instead} \beamer@centeredfalse} \DeclareOptionBeamer{sans}{% \ClassWarning{beamer}{``sans'' is obsolete. Just remove this option} \def\familydefault{\sfdefault} \def\mathfamilydefault{\sfdefault} \beamer@sansmathtrue } \DeclareOptionBeamer{serif}{% \ClassWarning{beamer}{``serif'' is obsolete. Use font theme ``serif'' instead} \def\familydefault{\rmdefault} \def\mathfamilydefault{\rmdefault} \beamer@sansmathfalse } \DeclareOptionBeamer{mathsans}{ \ClassWarning{beamer}{``mathsans'' is obsolete. Use font theme ``serif'' with option ``butsansserifmath''} \def\mathfamilydefault{\sfdefault}\beamer@sansmathtrue} \DeclareOptionBeamer{mathserif}{ \ClassWarning{beamer}{``mathserif'' is obsolete. Use font theme ``serif'' with option ``onlymath''} \def\mathfamilydefault{\rmdefault}\beamer@sansmathfalse} \DeclareOptionBeamer{professionalfont}{ \ClassWarning{beamer}{``professionalfont'' is obsolete. Use font theme ``professionalfonts'' instead} \beamer@suppressreplacementstrue} % has to be done here for compatibility \def\familydefault{\sfdefault} \def\mathfamilydefault{\sfdefault} \beamer@sansmathtrue \PassOptionsToPackage{bookmarks=true,% bookmarksopen=true,% pdfborder={0 0 0},% pdfhighlight={/N},% linkbordercolor={.5 .5 .5}}{hyperref} \DeclareOptionBeamer{pgf}{\PassOptionsToPackage{#1}{pgf}} \DeclareOptionBeamer{hyperref}{\PassOptionsToPackage{#1}{hyperref}} \DeclareOptionBeamer{color}{\PassOptionsToPackage{#1}{color}} \DeclareOptionBeamer{xcolor}{\PassOptionsToPackage{#1}{xcolor}} \def\beamer@loaducs{} \DeclareOptionBeamer{ucs}{% \ifx\pdfoutput\@undefined \def\beamer@loaducs{ \RequirePackage{ucs}% \AtBeginDocument{\PreloadUnicodePage{0}}% \AtBeginDocument{\PreloadUnicodePage{1}}% } \else \PassOptionsToPackage{pdftex,unicode}{hyperref} \def\beamer@loaducs{ \RequirePackage[hyperref]{ucs}% \AtBeginDocument{\PreloadUnicodePage{0}}% \AtBeginDocument{\PreloadUnicodePage{1}}% } \fi } \DeclareOptionBeamer{utf8}{\ExecuteOptionsBeamer{ucs}% \g@addto@macro\beamer@loaducs{\RequirePackage[utf8]{inputenc}}% } % % Process Options % \ExecuteOptionsBeamer{c} \ProcessOptionsBeamer % Filter class option list \beamer@filterclassoptions \RequirePackage{pgf} % For all sorts of things... \RequirePackage{xxcolor} % For color management. \RequirePackage{amssymb} % For \blacktriangleright \RequirePackage[% papersize={12.80cm,9.60cm}, hmargin=1cm,% vmargin=0cm,% head=0.5cm,% will be changed later headsep=0pt,% foot=0.5cm% will be changed later ]{geometry} % For the page layout \RequirePackage[implicit=false]{hyperref} % For hyperlinks \hypersetup{pdfcreator={LaTeX with beamer class version \beamer@version}} % Coding stuff \beamer@loaducs \beamer@hypercjk \expandafter\input\beamer@size \geometry{headsep=0pt} \RequirePackage{beamerbasecompatibility} % Fixes other packages \RequirePackage{beamerbasefont} % Font stuff % Defaults \normalfont \raggedright \addtocontents{toc}{\protect\beamer@endinputifotherversion{\beamer@version pt}} \addtocontents{nav}{\protect\beamer@endinputifotherversion{\beamer@version pt}} \RequirePackage{beamerbasemisc} % Miscellaneous commands \RequirePackage{beamerbaseoverlay} % Overlay stuff \RequirePackage{beamerbasetitle} % Commands for constructing the title page \RequirePackage{beamerbasesection} % Parts, sections, subsections, appendix \RequirePackage{beamerbaseframe} % Commands for constructing frames \RequirePackage{beamerbaseframesize} % Commands for constructing frames \RequirePackage{beamerbaseframecomponents} % Headlines, sidebars, columns \RequirePackage{beamerbasecolor} % Color management \RequirePackage{beamerbasenotes} % Commands for adding notes \RequirePackage{beamerbasetoc} % Table of Contents Format \RequirePackage{beamerbasetemplates} % For default templates \RequirePackage{beamerbaselocalstructure} % Commands for local structure like alert, itemize, etc. \RequirePackage{beamerbasenavigation} % Navigation buttons \RequirePackage{beamerbasetheorems} % Theorems \RequirePackage{beamerbasethemes} % Commands for including and building themes \usetheme{default} % Compatibility stuff: \csname beamer@loadlater\endcsname %%% Local Variables: %%% mode: latex %%% TeX-master: "~/texmf/tex/latex/beamer/examples/beamerexample1.tex" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerarticle.sty000664 000000 000000 00000002232 12732552614 025531 0ustar00rootroot000000 000000 \RequirePackage{beamerbasercs} \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerarticle.sty,v 1.4 2004/10/07 20:17:57 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \DeclareOption{noxcolor}{\PassOptionsToPackage{noxcolor}{beamerbasearticle}} \DeclareOption{notheorems}{\PassOptionsToPackage{notheorems}{beamerbasearticle}} \DeclareOption{noamsthm}{\PassOptionsToPackage{noamsthm}{beamerbasearticle}} \DeclareOption{envcountsect}{\PassOptionsToPackage{envcountsect}{beamerbasearticle}} \DeclareOption{activeospeccharacters}{\PassOptionsToPackage{activeospeccharacters}{beamerbasearticle}} \ProcessOptions \RequirePackage{beamerbasemodes} % Setup modes and check for article option \def\beamer@slide#1#2{\expandafter\gdef\csname beamer@slide#1\endcsname{#2}} \beamer@inpresentationfalse \ifx\beamer@currentmode\@undefined \def\beamer@currentmode{article} \fi \mode \RequirePackage{beamerbasearticle} %%% Local Variables: %%% mode: latex %%% TeX-master: ../examples/beamerexample1.tex %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbasearticle.sty000664 000000 000000 00000006520 12732552614 026370 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbasearticle.sty,v 1.22 2004/10/07 20:05:51 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \newif\ifbeamer@articlexcolor \beamer@articlexcolortrue \newif\ifbeamer@articleactive \beamer@articleactivefalse \DeclareOption{noxcolor}{\beamer@articlexcolorfalse} \DeclareOption{nodefaultblocks}{\beamer@blocksfalse}% obsolete. use notheorems \DeclareOption{notheorems}{\beamer@blocksfalse} \DeclareOption{noamsthm}{\beamer@blocksfalse\beamer@amsfalse} \DeclareOption{envcountsect}{\beamer@countsecttrue} \DeclareOption{activeospeccharacters}{\beamer@articleactivetrue} \ProcessOptions \mode
    \RequirePackage{keyval} \RequirePackage{beamerbaseoptions} % For option management \ifbeamer@articlexcolor \RequirePackage[override]{xcolor} % For color support \fi \RequirePackage{beamerbasecompatibility} % Fixes other packages \RequirePackage{beamerbasefont} % Font stuff \RequirePackage{beamerbasemisc} % Miscellaneous commands \RequirePackage{beamerbaseoverlay} % Overlay stuff \RequirePackage{beamerbasetitle} % Commands for constructing the title page \RequirePackage{beamerbasesection} % Parts, sections, subsections, appendix \RequirePackage{beamerbaseframe} % Commands for constructing frames \RequirePackage{beamerbaseframesize} % Commands for changing the size of frames \RequirePackage{beamerbaseframecomponents} % Headlines, sidebars, columns \RequirePackage{beamerbasecolor} % Headlines, sidebars, columns \RequirePackage{beamerbasenotes} % Commands for constructing frames \RequirePackage{beamerbasetoc} % Table of Contents Format \RequirePackage{beamerbasetemplates} % For default templates \RequirePackage{beamerbaselocalstructure} % Commands for local structure like alert, itemize, etc. \RequirePackage{beamerbasenavigation} % Navigation buttons \RequirePackage{beamerbasetheorems} % Theorems \RequirePackage{beamerbasethemes} % Commands for including and building themes % Default article templates: \defbeamertemplate
    *{frame begin}{default}{} \defbeamertemplate
    *{frame end}{default}{} \defbeamertemplate
    *{alerted text begin}{default}{\ifmmode\else\begin{itshape}\fi} \defbeamertemplate
    *{alerted text end}{default}{\ifmmode\else\end{itshape}\fi} \defbeamertemplate
    *{structure begin}{default}{\ifmmode\else\begin{bfseries}\fi} \defbeamertemplate
    *{structure end}{default}{\ifmmode\else\end{bfseries}\fi} \defbeamertemplate
    *{block begin}{default} {\par\vskip\medskipamount{\noindent\textbf{\insertblockname}}\par\noindent\ignorespaces} \defbeamertemplate
    *{block end}{default}{\vskip\medskipamount} \defbeamertemplate
    *{block alerted begin}{default} {\par\vskip\medskipamount{\noindent\textbf{\emph{\insertblockname}}}\par\noindent\ignorespaces} \defbeamertemplate
    *{block alerted end}{default}{\vskip\medskipamount} \defbeamertemplate
    *{block example begin}{default} {\par\vskip\medskipamount{\noindent\emph{\insertblockname}}\par\noindent\ignorespaces} \defbeamertemplate
    *{block example end}{default}{\vskip\medskipamount} \mode %%% Local Variables: %%% mode: latex %%% TeX-master: ../examples/beamerexample1.tex %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbaseauxtemplates.sty000664 000000 000000 00000046630 12732552614 027467 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbaseauxtemplates.sty,v 1.19 2004/10/07 22:21:15 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \RequirePackage{pgfshade} \RequirePackage{beamerbaseboxes} % % declare some balls % \normalsize \pgfdeclareradialshading[bg,parent.bg]{tocsphere}{\pgfpoint{-0.5ex}{0.6ex}}% {% color(0cm)=(bg!35!white); color(0.44ex)=(bg!75!white); color(0.88ex)=(bg!70!black!90!parent.bg); color(1.2ex)=(bg!50!black!90!parent.bg); color(1.3ex)=(parent.bg)} \pgfdeclareradialshading[bg,parent.bg]{bigsphere}{\pgfpoint{-0.1849315ex}{.2260273ex}}% {% color(0cm)=(bg!15); color(0.1643835ex)=(bg!75); color(0.3287671ex)=(bg!70!black); color(0.4520547ex)=(bg!50!black); color(0.53ex)=(parent.bg)} \pgfdeclareradialshading[bg,parent.bg]{smallsphere}{\pgfpoint{-0.1479452ex}{0.18287671ex}}% {% color(0cm)=(bg!15); color(0.1315068ex)=(bg!75); color(0.2630136ex)=(bg!70!black); color(0.36164383ex)=(bg!50!black); color(0.427ex)=(parent.bg)} \def\beamer@usesphere#1#2{% \hbox{\usebeamercolor{#1}\normalsize\pgfuseshading{#2}}} % % Background templates % \define@key{beamer@backgroundgrid}{step}{\def\beamer@bggw{#1}} \define@key{beamer@backgroundgrid}{color}{\def\beamer@bggc{\color{#1}}} \defbeamertemplate{background}{grid}[1][] {% \setkeys{beamer@backgroundgrid}{step=0.5cm,color=fg!10!bg}% \setkeys{beamer@backgroundgrid}{#1}% \begin{pgfpicture}{0cm}{0cm}{\the\paperwidth}{\the\paperheight} \beamer@bggc \pgfgrid[stepx=\beamer@bggw,stepy=\beamer@bggw]{\pgforigin}{\pgfpoint{\the\paperwidth}{\the\paperheight}} \end{pgfpicture}% } \define@key{beamer@backgroundshade}{top}{\def\beamer@bgst{#1}} \define@key{beamer@backgroundshade}{bottom}{\def\beamer@bgsb{#1}} \define@key{beamer@backgroundshade}{right}{\def\beamer@bgst{#1}} \define@key{beamer@backgroundshade}{left}{\def\beamer@bgsb{#1}} \define@key{beamer@backgroundshade}{middle}{\def\beamer@bgsm{#1}} \define@key{beamer@backgroundshade}{midpoint}{\def\beamer@bgsmp{#1}} \def\beamer@calcvertshading#1#2#3{% {\usebeamercolor{palette primary}} \usebeamercolor{normal text} \setkeys{beamer@backgroundshade}{top=palette primary.bg!25!bg,bottom=bg,middle={},midpoint=0.5}% \setkeys{beamer@backgroundshade}{#3} \ifx\beamer@bgsm\@empty \pgfdeclareverticalshading{#1}{#2}% {color(0cm)=(\beamer@bgsb); color(\the\paperheight)=(\beamer@bgst)} \colorlet{beamer@backgroundshadestart}{\beamer@bgsb}% \colorlet{beamer@backgroundshadeend}{\beamer@bgst}% \colorlet{beamer@average}{beamer@backgroundshadestart!50!beamer@backgroundshadeend}% \else \pgfdeclareverticalshading{#1}{#2}% {color(0cm)=(\beamer@bgsb); color(\beamer@bgsmp\paperheight)=(\beamer@bgsm); color(\the\paperheight)=(\beamer@bgst)} \colorlet{beamer@average}{\beamer@bgsm} \fi% } \def\beamer@calchorishading#1#2#3{% {\usebeamercolor{palette primary}} \usebeamercolor{normal text} \setkeys{beamer@backgroundshade}{left=palette primary.bg!25!bg,right=bg,middle={},midpoint=0.5}% \setkeys{beamer@backgroundshade}{#3} \ifx\beamer@bgsm\@empty \pgfdeclarehorizontalshading{#1}{\the\paperheight}% {color(0cm)=(\beamer@bgsb); color(#2)=(\beamer@bgst)} \colorlet{beamer@backgroundshadestart}{\beamer@bgsb}% \colorlet{beamer@backgroundshadeend}{\beamer@bgst}% \colorlet{beamer@average}{beamer@backgroundshadestart!50!beamer@backgroundshadeend}% \else \pgfdeclarehorizontalshading{#1}{\the\paperheight}% {color(0cm)=(\beamer@bgsb); color(\beamer@bgsmp#2)=(\beamer@bgsm); color(#2)=(\beamer@bgst)} \colorlet{beamer@average}{\beamer@bgsm} \fi% } \defbeamertemplate{background canvas}{vertical shading}[1][] {% \pgfuseshading{beamer@backgroundshading}% } [action] { \beamer@calcvertshading{beamer@backgroundshading}{\the\paperwidth}{#1} \colorlet{beamer@@average}{beamer@average} \setbeamercolor{normal text}{bg=beamer@@average} } % % Side bars % \defbeamertemplate{sidebar canvas left}{vertical shading}[1][] {% \pgfuseshading{beamer@sidebarcanvasleftshading}% } [action] { \beamer@calcvertshading{beamer@sidebarcanvasleftshading}{\the\beamer@leftsidebar}{#1} } \defbeamertemplate{sidebar canvas right}{vertical shading}[1][] {% \pgfuseshading{beamer@sidebarcanvasrightshading}% } [action] { \beamer@calcvertshading{beamer@sidebarcanvasrightshading}{\the\beamer@rightsidebar}{#1} } \defbeamertemplate{sidebar canvas left}{horizontal shading}[1][] {% \pgfuseshading{beamer@sidebarcanvasleftshading}% } [action] { \beamer@calchorishading{beamer@sidebarcanvasleftshading}{\beamer@leftsidebar}{#1} } \defbeamertemplate{sidebar canvas right}{horizontal shading}[1][] {% \pgfuseshading{beamer@sidebarcanvasrightshading}% } [action] { \beamer@calchorishading{beamer@sidebarcanvasrightshading}{\beamer@rightsidebar}{#1} } % (sub-)section in toc: sections numbered \defbeamertemplate{section in toc}{sections numbered} {\leavevmode\inserttocsectionnumber. \inserttocsection\par} \defbeamertemplate{subsection in toc}{sections numbered} {\leavevmode\leftskip=2.5em\inserttocsubsection\par} % (sub-)section in toc: subsections numbered \defbeamertemplate{section in toc}{subsections numbered} {\leavevmode\leftskip=2em\inserttocsection\par} \defbeamertemplate{subsection in toc}{subsections numbered} {\leavevmode\leftskip=2em\rlap{\hskip-2em\inserttocsectionnumber.\inserttocsubsectionnumber}\inserttocsubsection\par} % (sub-)section in toc: circle \defbeamertemplate{section in toc}{circle} {\leavevmode\leftskip=2ex% \llap{% \usebeamerfont*{section number projected}% \usebeamercolor{section number projected}% \begin{pgfpicture}{-1ex}{0ex}{1ex}{2ex} \color{bg} \pgfcircle[fill]{\pgfpoint{0pt}{.75\pgfex}}{1.2\pgfex} \pgfbox[center,base]{\color{fg}\inserttocsectionnumber} \end{pgfpicture}\kern1.25ex% }% \inserttocsection\par} \defbeamertemplate{subsection in toc}{circle} {\leavevmode\leftskip=2em\inserttocsubsection\par} % (sub-)section in toc: square \defbeamertemplate{section in toc}{square} {\leavevmode\leftskip=1.75ex% \llap{% \usebeamerfont*{section number projected}% \usebeamercolor[bg]{section number projected}% \vrule width2.25ex height1.85ex depth.4ex% \hskip-2.25ex% \hbox to2.25ex{\hfil\color{fg}\inserttocsectionnumber\hfil}}% \kern1.25ex\inserttocsection\par} \defbeamertemplate{subsection in toc}{square} {\leavevmode\leftskip=5ex\llap{% \usebeamercolor[bg]{subsection number projected}% \vrule width1ex height1ex\kern1ex}\inserttocsubsection\par} % (sub-)section in toc: ball \defbeamertemplate{section in toc}{ball unnumbered} {\leavevmode\raise0.1ex\beamer@usesphere{section number projected}{bigsphere}\kern1.25ex\inserttocsection\par} \defbeamertemplate{subsection in toc}{ball unnumbered} {\leavevmode\leftskip=1.5em\raise0.2ex\beamer@usesphere{subsection number projected}{smallsphere}% \kern1ex\inserttocsubsection\par} % (sub-)section in toc: ball numbered \defbeamertemplate{section in toc}{ball} {\leavevmode\leftskip=2.75ex% \llap{% \normalsize% \begin{pgfpicture}{-1ex}{-0.7ex}{1ex}{1ex} \pgfbox[center,center]{\beamer@usesphere{section number projected}{tocsphere}} \pgfbox[center,center]{% \usebeamerfont*{section number projected}% \usebeamercolor{section number projected}% \color{fg!90!bg}% \inserttocsectionnumber} \end{pgfpicture}% \kern1.25ex}% \inserttocsection\par } [action] {\setbeamerfont{section number projected}{size=\scriptsize}} \defbeamertemplate{subsection in toc}{ball} {\leavevmode\leftskip=5ex% \llap{\raise0.1ex\beamer@usesphere{subsection number projected}{bigsphere}\kern1ex}% \inserttocsubsection\par% } % Itemize items, circle \defbeamertemplatealias{itemize item}{triangle}{default} \defbeamertemplatealias{itemize subitem}{triangle}{default} \defbeamertemplatealias{itemize subsubitem}{triangle}{default} % Itemize items, circle \defbeamertemplate{itemize item}{circle}{\small\raise0.5pt\hbox{\textbullet}} \defbeamertemplate{itemize subitem}{circle}{\footnotesize\raise0.5pt\hbox{\textbullet}} \defbeamertemplate{itemize subsubitem}{circle}{\footnotesize\raise0.5pt\hbox{\textbullet}} % Itemize items, square \defbeamertemplate{itemize item}{square}{\hbox{\vrule width 1ex height 1ex}} \defbeamertemplate{itemize subitem}{square}{\small\hbox{\vrule width 1ex height 1ex}} \defbeamertemplate{itemize subsubitem}{square}{\small\hbox{\vrule width 1ex height 1ex}} % Itemize items, ball \defbeamertemplate{itemize item}{ball}{\raise0.2pt\beamer@usesphere{item projected}{bigsphere}} \defbeamertemplate{itemize subitem}{ball}{\raise0.2pt\beamer@usesphere{subitem projected}{smallsphere}} \defbeamertemplate{itemize subsubitem}{ball}{\raise0.2pt\beamer@usesphere{subsubitem projected}{smallsphere}} % Enumerate items, ball \defbeamertemplate{enumerate item}{ball} { \begin{pgfpicture}{-1ex}{-0.65ex}{1ex}{1ex} \usebeamercolor[fg]{item projected} \begin{pgfmagnify}{1.75}{1.75} \pgfbox[center,center]{\normalsize\pgfuseshading{bigsphere}} \end{pgfmagnify} \pgfputat{\pgfpoint{0pt}{0.5pt}} {% \pgfbox[center,center]{% \usebeamerfont*{item projected}% \insertenumlabel}} \end{pgfpicture}% } \defbeamertemplate{enumerate subitem}{ball} { \begin{pgfpicture}{-1ex}{-0.55ex}{1ex}{1ex} \usebeamercolor[fg]{subitem projected} \begin{pgfmagnify}{1.4}{1.4} \pgfbox[center,center]{\normalsize\pgfuseshading{bigsphere}} \end{pgfmagnify} \pgfbox[center,center]{% \usebeamerfont*{subitem projected}% \insertsubenumlabel} \end{pgfpicture}% } \defbeamertemplate{enumerate subsubitem}{ball} { \begin{pgfpicture}{-1ex}{-0.55ex}{1ex}{1ex} \usebeamercolor[fg]{subsubitem projected} \begin{pgfmagnify}{1.4}{1.4} \pgfbox[center,center]{\normalsize\pgfuseshading{bigsphere}} \end{pgfmagnify} \pgfbox[center,center]{% \usebeamerfont*{subitem projected}% \insertsubsubenumlabel} \end{pgfpicture}% } \defbeamertemplate{enumerate mini template}{ball} { \begin{pgfpicture}{-1ex}{-0.65ex}{1ex}{1ex} \usebeamercolor[fg]{\beameritemnestingprefix item projected} \begin{pgfmagnify}{1.75}{1.75} \pgfbox[center,center]{\normalsize\pgfuseshading{bigsphere}} \end{pgfmagnify} \pgfputat{\pgfpoint{0pt}{0.5pt}} {% \usebeamerfont*{\beameritemnestingprefix item projected}% \pgfbox[center,center]{\insertenumlabel}} \end{pgfpicture} } % Enumerate items, square \defbeamertemplate{enumerate item}{square} { \hbox{% \usebeamerfont*{item projected}% \usebeamercolor[bg]{item projected}% \vrule width2.25ex height1.85ex depth.4ex% \hskip-2.25ex% \hbox to2.25ex{% \hfil% \color{fg}\insertenumlabel% \hfil}% }% } [action] {\setbeamerfont{item projected}{size=\scriptsize}} \defbeamertemplate{enumerate subitem}{square} { \hbox{% \usebeamerfont*{subitem projected}% \usebeamercolor[bg]{subitem projected}% \vrule width2.25ex height1.85ex depth.4ex% \hskip-2.25ex% \hbox to2.25ex{% \hfil% \color{fg}\insertsubenumlabel% \hfil}% }% } \defbeamertemplate{enumerate subsubitem}{square} { \hbox{% \usebeamerfont*{subitem projected}% \usebeamercolor[bg]{subsubitem projected}% \vrule width2.25ex height1.85ex depth.4ex% \hskip-2.25ex% \hbox to2.25ex{% \hfil% \color{fg}\insertsubsubenumlabel% \hfil}% }% } \defbeamertemplate{enumerate mini template}{square} { \hbox{% \usebeamerfont*{\beameritemnestingprefix item projected}% \usebeamercolor[bg]{\beameritemnestingprefix item projected}% \vrule width2.25ex height1.85ex depth.4ex% \hskip-2.25ex% \hbox to2.25ex{% \hfil% \color{fg}\insertenumlabel% \hfil}% }% } % Enumerate items, circle \defbeamertemplate{enumerate item}{circle} { \usebeamerfont*{item projected}% \usebeamercolor[bg]{item projected}% \begin{pgfpicture}{-1ex}{0ex}{1ex}{2ex} \pgfcircle[fill]{\pgfpoint{0pt}{.75\pgfex}}{1.2\pgfex} \pgfbox[center,base]{\color{fg}\insertenumlabel} \end{pgfpicture}% } [action] {\setbeamerfont{item projected}{size=\scriptsize}} \defbeamertemplate{enumerate subitem}{circle} { \usebeamerfont*{subitem projected}% \usebeamercolor[bg]{subitem projected}% \begin{pgfpicture}{-1ex}{0ex}{1ex}{2ex} \pgfcircle[fill]{\pgfpoint{0pt}{.75\pgfex}}{1.2\pgfex} \pgfbox[center,base]{\color{fg}\insertsubenumlabel} \end{pgfpicture}% } \defbeamertemplate{enumerate subsubitem}{circle} { \usebeamerfont*{subsubitem projected}% \usebeamercolor[bg]{subsubitem projected}% \begin{pgfpicture}{-1ex}{0ex}{1ex}{2ex} \pgfcircle[fill]{\pgfpoint{0pt}{.75\pgfex}}{1.2\pgfex} \pgfbox[center,base]{\color{fg}\insertsubsubenumlabel} \end{pgfpicture}% } \defbeamertemplate{enumerate mini template}{circle} { \usebeamerfont*{\beameritemnestingprefix item projected}% \usebeamercolor[bg]{\beameritemnestingprefix item projected}% \begin{pgfpicture}{-1ex}{0ex}{1ex}{2ex} \pgfcircle[fill]{\pgfpoint{0pt}{.75\pgfex}}{1.2\pgfex} \pgfbox[center,base]{\color{fg}\insertenumlabel} \end{pgfpicture}% } % % Frame title continutations % \defbeamertemplatealias{frametitle continuation}{roman}{default} \defbeamertemplate{frametitle continuation}{from second}[1][\insertcontinuationtext] {\expandafter\ifnum\insertcontinuationcount>1\relax#1\fi} % Bibliography items \defbeamertemplatealias{bibliography item}{article}{default} \defbeamertemplate{bibliography item}{book} {\lower2pt\hbox{\pgfuseimage{beamericonbook}}} \defbeamertemplate{bibliography item}{text} {\insertbiblabel} \defbeamertemplate{bibliography item}{triangle} {\scriptsize\raise1.25pt\hbox{\donotcoloroutermaths$\blacktriangleright$}} % Headline \defbeamertemplate{headline}{text line}[1] {\hskip\Gm@lmargin\hbox to\@tempdima{\textwidth=\@tempdima\hsize=\textwidth\relax#1\hfil}\hskip\Gm@rmargin} % Footline \defbeamertemplate{footline}{text line}[1] {\hskip\Gm@lmargin\hbox to\@tempdima{\textwidth=\@tempdima\hsize=\textwidth\relax#1\hfil}\hskip\Gm@rmargin} \defbeamertemplate{footline}{page number} {% \hfill% \usebeamercolor[fg]{page number in head/foot}% \usebeamerfont{page number in head/foot}% \insertpagenumber\,/\,\insertpresentationendpage\kern1em\vskip2pt% } \defbeamertemplate{footline}{frame number} { \hfill% \usebeamercolor[fg]{page number in head/foot}% \usebeamerfont{page number in head/foot}% \insertframenumber\,/\,\inserttotalframenumber\kern1em\vskip2pt% } % Mini frames \defbeamertemplate{mini frame}{box} {% \begin{pgfpicture}{0pt}{0pt}{.1cm}{.1cm} \pgfrect[fillstroke]{\pgforigin}{\pgfpoint{\the\beamer@boxsize}{\the\beamer@boxsize}} \end{pgfpicture}% } [action] { \setbeamersize{mini frame size=.1cm,mini frame offset=.05cm} } \defbeamertemplate{mini frame in current subsection}{box} {% \begin{pgfpicture}{0pt}{0pt}{.1cm}{.1cm} \pgfrect[stroke]{\pgforigin}{\pgfpoint{\the\beamer@boxsize}{\the\beamer@boxsize}} \end{pgfpicture}% } \defbeamertemplate{mini frame}{tick} {% \hskip-0.4pt\vrule height\beamer@boxsize width1.2pt% } [action] { \setbeamersize{mini frame size=.1cm,mini frame offset=.05cm} } \defbeamertemplate{mini frame in current subsection}{tick} {% \vrule height\beamer@boxsize width0.4pt% } % % Captions % \defbeamertemplate{caption}{numbered} {% \raggedright {% \usebeamercolor[fg]{caption name}% \usebeamerfont*{caption name}% \insertcaptionname~\insertcaptionnumber:% } \insertcaption\par } \defbeamertemplate{caption}{caption name own line} {% \begin{minipage}{\textwidth} \raggedright {% \usebeamercolor[fg]{caption name}% \usebeamerfont*{caption name}% \insertcaptionname% }\\ \insertcaption \end{minipage} } % % Buttons % \newdimen\beamer@blockheadheight% \defbeamertemplate{navigation symbols}{only frame symbol} {\insertframenavigationsymbol} \defbeamertemplate{navigation symbols}{vertical} {% \vbox{% \hbox{\insertslidenavigationsymbol} \hbox{\insertframenavigationsymbol} \hbox{\insertsubsectionnavigationsymbol} \hbox{\insertsectionnavigationsymbol} \hbox{\insertdocnavigationsymbol} \hbox{\insertbackfindforwardnavigationsymbol}}% } \defbeamertemplatealias{navigation symbols}{horizontal}{default} % % Blocks % \defbeamertemplateparent{blocks}[rounded]{block begin,block end,% block alerted begin,block alerted end,% block example begin,block example end}[1][] {[#1]} \defbeamertemplate{block begin}{rounded}[1][shadow=false] { \par\vskip\medskipamount% \begin{beamerboxesrounded}[upper=block title,lower=block body,#1]% {\usebeamerfont*{block title}\insertblockname}% \raggedright% \usebeamerfont{block body}% } \defbeamertemplate{block end}{rounded}[1][] {\end{beamerboxesrounded}\vskip\smallskipamount} \defbeamertemplate{block alerted begin}{rounded}[1][shadow=false] { \par\vskip\medskipamount% \begin{beamerboxesrounded}[upper=block title alerted,lower=block body alerted,#1]% {\usebeamerfont*{block title alerted}\insertblockname}% \raggedright% \usebeamerfont{block body alerted}% }% \defbeamertemplate{block alerted end}{rounded}[1][] {\end{beamerboxesrounded}\vskip\smallskipamount} \defbeamertemplate{block example begin}{rounded}[1][shadow=false] { \par\vskip\medskipamount% \begin{beamerboxesrounded}[upper=block title example,lower=block body example,#1] {\usebeamerfont*{block title example}\insertblockname}% \raggedright% \usebeamerfont{block body alerted}% }% \defbeamertemplate{block example end}{rounded}[1][] {\end{beamerboxesrounded}\vskip\smallskipamount} % % Note templates % \defbeamertemplate{note page}{plain} {\insertnote} \defbeamertemplate{note page}{compressed} {% {% \tiny \let\\=\relax% \insertvrule{0.125\paperheight}{white!90!black}% \vskip-0.125\paperheight \nointerlineskip \vbox{\hfill\insertslideintonotes{0.125}\hskip-\Gm@rmargin\hskip0pt% \vskip-0.125\paperheight\nointerlineskip}% \nointerlineskip \vbox to .125\paperheight{ \setbox\beamer@tempbox=\hbox{\hbox{\insertsection}}% \ht\beamer@tempbox=1em \box\beamer@tempbox \nointerlineskip \setbox\beamer@tempbox=\hbox{\hbox{\quad\insertsubsection}}% \ht\beamer@tempbox=1em \box\beamer@tempbox \nointerlineskip \setbox\beamer@tempbox=\hbox{\hbox{\quad\quad\insertshortframetitle}}% \ht\beamer@tempbox=1em \box\beamer@tempbox \vfil }\vskip0.5em } \nointerlineskip \insertnote } % % Theorem templates % \defbeamertemplate{theorem begin}{ams style} {% \begin{\inserttheoremblockenv} {% \inserttheoremheadfont \inserttheoremname \inserttheoremnumber \ifx\inserttheoremaddition\@empty\else\ (\inserttheoremaddition)\fi% \inserttheorempunctuation }% } \defbeamertemplate{theorem end}{ams style} {\end{\inserttheoremblockenv}} \defbeamertemplate{theorem begin}{numbered} {% \begin{\inserttheoremblockenv} {% \inserttheoremname \inserttheoremnumber \ifx\inserttheoremaddition\@empty\else\ (\inserttheoremaddition)\fi% }% } \defbeamertemplate{theorem end}{numbered} {\end{\inserttheoremblockenv}} \defbeamertemplate{theorem begin}{normal font} { \normalfont \begin{\inserttheoremblockenv} {% \inserttheoremname \ifx\inserttheoremaddition\@empty\else\ (\inserttheoremaddition)\fi% }% } \defbeamertemplate{theorem end}{normal font} {\end{\inserttheoremblockenv}} \mode semantik-0.9.5/src/templates/beamer/beamermindist/beamerbaseboxes.sty000664 000000 000000 00000014471 12732552614 026071 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbaseboxes.sty,v 1.21 2004/10/07 20:17:57 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \RequirePackage{keyval} \def\beamerboxesdeclarecolorscheme#1#2#3{% scheme name, upper color, lower color \setbeamercolor{@scheme upper #1}{fg=white,bg=#2} \setbeamercolor{@scheme lower #1}{bg=#3} } \define@key{beamerboxes}{scheme}{\def\bmb@upper{@scheme upper #1}\def\bmb@lower{@scheme lower #1}} \define@key{beamerboxes}{upper}{\def\bmb@upper{#1}} \define@key{beamerboxes}{lower}{\def\bmb@lower{#1}} \define@key{beamerboxes}{width}{\edef\bmb@width{#1}} \define@key{beamerboxes}{shadow}[true]{\csname bmb@shadow#1\endcsname} \newif\ifbmb@shadow \newbox\bmb@box \newbox\bmb@colorbox \newbox\bmb@boxshadow \newbox\bmb@boxshadowball \newbox\bmb@boxshadowballlarge \newdimen\bmb@temp \newdimen\bmb@dima \newdimen\bmb@dimb \newdimen\bmb@prevheight \newcommand\beamerboxesrounded[2][]{% \vbox\bgroup% \setkeys{beamerboxes}{upper=block title,lower=block body,width=\textwidth,shadow=false}% \setkeys{beamerboxes}{#1}% {% \usebeamercolor{\bmb@lower}% \globalcolorstrue% \colorlet{lower.bg}{bg}% }% {% \usebeamercolor{\bmb@upper}% \globalcolorstrue% \colorlet{upper.bg}{bg}% }% % % Typeset head % \vskip4bp \setbox\bmb@box=\hbox{% \begin{minipage}[b]{\bmb@width}% \usebeamercolor[fg]{\bmb@upper}% #2% \end{minipage}}% \ifdim\wd\bmb@box=0pt% \setbox\bmb@box=\hbox{}% \ht\bmb@box=1.5pt% \bmb@prevheight=-4.5pt% \else% \wd\bmb@box=\bmb@width% \bmb@temp=\dp\bmb@box% \ifdim\bmb@temp<1.5pt% \bmb@temp=1.5pt% \fi% \setbox\bmb@box=\hbox{\raise\bmb@temp\hbox{\box\bmb@box}}% \dp\bmb@box=0pt% \bmb@prevheight=\ht\bmb@box% \fi% \bmb@temp=\bmb@width% \bmb@dima=\bmb@temp\advance\bmb@dima by2.2bp% \bmb@dimb=\bmb@temp\advance\bmb@dimb by4bp% \hbox{% \begin{pgfpicture}{0bp}{-\ht\bmb@box}{0bp}{-\ht\bmb@box} \ifdim\wd\bmb@box=0pt% \color{lower.bg}% \else% \color{upper.bg}% \fi% \pgfqmoveto{-4}{-1} \pgfqcurveto{-4}{1.2}{-2.2}{3}{0}{3} \pgflineto{\pgfpoint{\bmb@temp}{3bp}} \pgfcurveto% {\pgfpoint{\bmb@dima}{3bp}}% {\pgfpoint{\bmb@dimb}{1.2bp}}% {\pgfpoint{\bmb@dimb}{-1bp}}% \bmb@dima=-\ht\bmb@box% \advance\bmb@dima by-2pt% \pgflineto{\pgfpoint{\bmb@dimb}{\bmb@dima}} \pgflineto{\pgfpoint{-4bp}{\bmb@dima}} \pgffill \end{pgfpicture}% \copy\bmb@box% }% \nointerlineskip% \vskip-1pt% \ifdim\wd\bmb@box=0pt% \else% \hbox{% \begin{pgfpicture}{0pt}{0pt}{\bmb@width}{6pt} \bmb@dima=\bmb@width% \advance\bmb@dima by8bp% \pgfrect[clip]{\pgfpoint{-4bp}{-1bp}}{\pgfpoint{\bmb@dima}{8bp}} \pgfputat{\pgfpoint{-4bp}{0bp}}{\pgfbox[left,base]{\pgfuseshading{bmb@transition}}}% \end{pgfpicture}% }% \nointerlineskip% \vskip-0.5pt% \fi% \ifbmb@shadow% \setbox\bmb@boxshadow=\hbox{\pgfuseshading{bmb@shadow}}% \setbox\bmb@boxshadowball=\hbox{\pgfuseshading{bmb@shadowball}}% \setbox\bmb@boxshadowballlarge=\hbox{\pgfuseshading{bmb@shadowballlarge}}% \fi% \setbox\bmb@colorbox=\hbox{\color{lower.bg}}% \setbox\bmb@box=\hbox\bgroup\begin{minipage}[b]{\bmb@width}% \vskip2pt% \usebeamercolor[fg]{\bmb@lower}% \colorlet{beamerstructure}{upper.bg}% \colorlet{structure}{upper.bg}% %\color{.}% } \def\endbeamerboxesrounded{% \end{minipage}\egroup% \wd\bmb@box=\bmb@width% \bmb@temp=\dp\bmb@box% \advance\bmb@temp by.5pt% \setbox\bmb@box=\hbox{\raise\bmb@temp\hbox{\box\bmb@box}}% \dp\bmb@box=0pt% \bmb@temp=\wd\bmb@box% \bmb@dima=\bmb@temp\advance\bmb@dima by2.2bp% \bmb@dimb=\bmb@temp\advance\bmb@dimb by4bp% \hbox{% \begin{pgfpicture}{0bp}{0bp}{0bp}{0bp} \ifbmb@shadow% \pgfputat{\pgfpoint{4bp}{-3bp}}{\pgfbox[center,center]{\copy\bmb@boxshadowball}} \begin{pgfscope} {% \advance\bmb@temp by-1bp% \pgfrect[clip]{\pgfpoint{\bmb@temp}{-7bp}}{\pgfpoint{9bp}{9bp}}% }% \pgfputat{\pgfpoint{\bmb@temp}{1bp}}{\pgfbox[center,center]{\box\bmb@boxshadowballlarge}} \end{pgfscope} \begin{pgfscope} \advance\bmb@temp by-4bp% \pgfrect[clip]{\pgfpoint{4bp}{-7bp}}{\pgfpoint{\bmb@temp}{5bp}} \pgfputat{\pgfpoint{4bp}{-7bp}}{\pgfbox[left,base]{\copy\bmb@boxshadow}}% \end{pgfscope} \begin{pgfscope} \advance\bmb@temp by 4bp% \bmb@dima=\ht\bmb@box% \advance\bmb@dima by\bmb@prevheight% \advance\bmb@dima by 4bp% \pgfrect[clip]{\pgfpoint{\bmb@temp}{1bp}}{\pgfpoint{4bp}{\bmb@dima}} \advance\bmb@dima by-4bp% \pgfputat{\pgfpoint{\bmb@temp}{\bmb@dima}}{\pgfbox[center,center]{\box\bmb@boxshadowball}} \advance\bmb@dima by-1bp% \pgfrect[clip]{\pgfpoint{\bmb@temp}{1bp}}{\pgfpoint{4bp}{\bmb@dima}} \advance\bmb@temp by4bp% \pgfputat{\pgfpoint{\bmb@temp}{-3bp}}% {\begin{pgfrotateby}{\pgfdegree{90}}\pgfbox[left,base]{\box\bmb@boxshadow}\end{pgfrotateby}}% \end{pgfscope} \fi% \unhbox\bmb@colorbox% \pgfqmoveto{-4}{1} \pgfqcurveto{-4}{-1.2}{-2.2}{-3}{0}{-3} \pgflineto{\pgfpoint{\the\bmb@temp}{-3bp}} \pgfcurveto% {\pgfpoint{\the\bmb@dima}{-3bp}}% {\pgfpoint{\the\bmb@dimb}{-1.2bp}}% {\pgfpoint{\the\bmb@dimb}{1bp}}% \bmb@dima=\ht\bmb@box% \pgflineto{\pgfpoint{\bmb@dimb}{\bmb@dima}} \pgflineto{\pgfpoint{-4bp}{\bmb@dima}} \pgffill \end{pgfpicture}% \box\bmb@box% }% \ifbmb@shadow% \vskip4bp minus 2bp% \else% \vskip2bp% \fi% \egroup% of \vbox\bgroup } % % Shadings % % Shadows \pgfdeclareradialshading[black,bg]{bmb@shadowball}{\pgforigin}{% color(0bp)=(black!50!bg); color(4bp)=(bg)} \pgfdeclareradialshading[black,bg]{bmb@shadowballlarge}{\pgforigin}{% color(0bp)=(black!50!bg); color(4bp)=(black!50!bg); color(8bp)=(bg)} \pgfdeclareverticalshading[black,bg]{bmb@shadow}{30cm}{% color(0bp)=(bg); color(4bp)=(black!50!bg); color(8bp)=(black!50!bg)} % Transition line \pgfdeclareverticalshading[lower.bg,upper.bg]{bmb@transition}{30cm}{% color(0pt)=(lower.bg); color(2pt)=(lower.bg); color(4pt)=(upper.bg)} semantik-0.9.5/src/templates/beamer/beamermindist/beamerbasecolor.sty000664 000000 000000 00000030071 12732552614 026061 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbasecolor.sty,v 1.36 2004/10/07 20:17:57 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode % % Color theme stuff % \define@key{beamerthc}{fg} {\expandafter\def\csname beamer@thcfg@\beamer@temp\endcsname{\def\beamer@thc@fg{#1}}} \define@key{beamerthc}{bg} {\expandafter\def\csname beamer@thcbg@\beamer@temp\endcsname{\def\beamer@thc@bg{#1}}} \define@key{beamerthc}{parent} {\expandafter\def\csname beamer@thcinherits@\beamer@temp\endcsname{% \@for\@temp:={#1}\do{\expandafter\beamer@thc@docolor\expandafter{\@temp}}}} \define@key{beamerthc}{use} {\expandafter\def\csname beamer@thcuse@\beamer@temp\endcsname{% \@for\@temp:={#1}\do{\expandafter\beamer@thc@usecolor\expandafter{\@temp}}}} \def\beamer@thc@prepcolor{% \let\beamer@thc@fg=\@empty% \let\beamer@thc@bg=\@empty% } \def\beamer@thc@docolor#1{% \csname beamer@thcuse@#1\endcsname% \csname beamer@thcinherits@#1\endcsname% \csname beamer@thcfg@#1\endcsname% \csname beamer@thcbg@#1\endcsname% } \def\beamer@thc@usecolor#1{% \begingroup% \beamer@thc@prepcolor% \beamer@thc@docolor{#1}% \ifx\beamer@thc@fg\@empty\def\beamer@thc@fg{fg}\fi% \ifx\beamer@thc@bg\@empty\def\beamer@thc@bg{bg}\fi% \global\let\beamer@thc@gfg\beamer@thc@fg% \global\let\beamer@thc@gbg\beamer@thc@bg% \globalcolorstrue% \colorlet{#1.fg}{\beamer@thc@gfg}% \colorlet{#1.bg}{\beamer@thc@gbg}% \endgroup% } \def\setbeamercolor{\@ifstar{\beamer@clearbeamercolor}{\beamer@setbeamercolor}} \newcommand\beamer@clearbeamercolor[2]{% \def\beamer@temp{#1}% \expandafter\let\csname beamer@thcfg@#1\endcsname=\relax% \expandafter\let\csname beamer@thcbg@#1\endcsname=\relax% \setkeys{beamerthc}{use={},parent={}}% \setkeys{beamerthc}{#2}% } \newcommand\beamer@setbeamercolor[2]{% \def\beamer@temp{#1}% \setkeys{beamerthc}{#2}% } \newcommand\ifbeamercolorempty[2][]{% \beamer@thc@prepcolor% \beamer@thc@docolor{#2}% \expandafter\ifx\csname beamer@thc@#1\endcsname\@empty% \expandafter\@firstoftwo% \else% \expandafter\@secondoftwo% \fi% } \def\usebeamercolor{\@ifstar{\beamer@usebeamercolor[fg]{normal text}\beamer@usebeamercolor}{\beamer@usebeamercolor}} \newcommand\beamer@usebeamercolor[2][]{% \beamer@thc@prepcolor% \beamer@thc@docolor{#2}% \ifx\beamer@thc@fg\@empty% \@namelet{\string\color@ temp@fg}{\string\color@ fg}% \else% \colorlet{temp@fg}{\csname beamer@thc@fg\endcsname}% \fi% \ifx\beamer@thc@bg\@empty% \@namelet{\string\color@ temp@bg}{\string\color@ bg}% \else% \colorlet{temp@bg}{\csname beamer@thc@bg\endcsname}% \fi% \@namelet{\string\color@ parent.fg}{\string\color@ fg}% \@namelet{\string\color@ parent.bg}{\string\color@ bg}% \@namelet{\string\color@ fg}{\string\color@ temp@fg}% \@namelet{\string\color@ bg}{\string\color@ temp@bg}% \begingroup% \global\@namelet{\string\color@ #2.fg}{\string\color@ temp@fg}% \global\@namelet{\string\color@ #2.bg}{\string\color@ temp@bg}% \endgroup% \def\beamer@temp{#1}% \ifx\beamer@temp\@empty% \else% \color{#1}% \fi% } \colorlet{fg}{black} \colorlet{bg}{white} \mode
    { \newcommand\setbeamercolor{\@ifstar{\@gobbletwo}{\@gobbletwo}} \newcommand\usebeamercolor{\@ifstar{\beamer@optgog}{\beamer@optgog}} \newcommand\beamer@optgog[2][]{} } % % Colored boxes % \define@key{beamercolbox}{wd}{\def\beamer@colbox@wd{#1}} \define@key{beamercolbox}{ht}{\def\beamer@colbox@ht{#1}} \define@key{beamercolbox}{dp}{\def\beamer@colbox@dp{#1}} \define@key{beamercolbox}{leftskip}{\def\beamer@colbox@ls{#1}} \define@key{beamercolbox}{rightskip}{\def\beamer@colbox@rs{#1}} \define@key{beamercolbox}{left}[]{\def\beamer@colbox@ls{0pt}\def\beamer@colbox@rs{0pt plus1fill}} \define@key{beamercolbox}{center}[]{\def\beamer@colbox@ls{0pt plus1fill}\def\beamer@colbox@rs{0pt plus1fill}} \define@key{beamercolbox}{right}[]{\def\beamer@colbox@ls{0pt plus1fill}\def\beamer@colbox@rs{0pt}} \define@key{beamercolbox}{sep}{\def\beamer@colbox@sep{#1}} \define@key{beamercolbox}{colsep}{\def\beamer@colbox@colsep{#1}} \define@key{beamercolbox}{colsep*}{\def\beamer@colbox@colseps{#1}} \define@key{beamercolbox}{shadow}[true]{\def\beamer@colbox@shadow{#1}} \define@key{beamercolbox}{rounded}{\csname beamer@colbox@rounded#1\endcsname} \define@key{beamercolbox}{ignorebg}[true]{\csname beamer@colbox@ignorebg#1\endcsname} \define@key{beamercolbox}{vmode}[]{\def\beamer@vmode{}} \newif\ifbeamer@colbox@rounded \newif\ifbeamer@colbox@ignorebg \newenvironment{beamercolorbox}[2][]{% \begingroup% \def\beamer@colbox@coladd{0pt}% \def\beamer@vmode{\leavevmode}% \setkeys{beamercolbox}{% wd=\textwidth,ht={},dp={},% leftskip=0pt,rightskip=0pt plus1fil,% sep=0pt,colsep=0pt,colsep*=0pt,% shadow=false,rounded=false,ignorebg=false}% \setkeys{beamercolbox}{#1}% \ifbeamercolorempty[bg]{#2}{\@tempswafalse}{\@tempswatrue}% \ifbeamer@colbox@ignorebg\@tempswafalse\fi% \def\beamer@colbox@color{#2}% \hsize=\beamer@colbox@wd% \setbox\beamer@tempbox=\hbox\bgroup\vbox\bgroup% \leftskip=\beamer@colbox@ls% \advance\leftskip by\beamer@colbox@sep% \rightskip=\beamer@colbox@rs% \advance\rightskip by\beamer@colbox@sep% \ifbeamer@colbox@ignorebg% \colorlet{beamer@temp@color}{bg}% \usebeamercolor[fg]{#2}% \colorlet{bg}{beamer@temp@color}% \else% \usebeamercolor[fg]{#2}% \fi% \if@tempswa% \advance\leftskip by\beamer@colbox@colsep% \advance\rightskip by\beamer@colbox@colsep% \ifdim\beamer@colbox@colsep=0pt\else\vskip\beamer@colbox@colsep\fi% \ifdim\beamer@colbox@colseps=0pt\else\vskip\beamer@colbox@colseps\fi% \fi% \ifdim\beamer@colbox@sep=0pt\else\vskip\beamer@colbox@sep\fi% \beamer@vmode\ignorespaces}{% \ifdim\beamer@colbox@sep=0pt\else\vskip\beamer@colbox@sep\fi% \if@tempswa\ifdim\beamer@colbox@colsep=0pt\else\vskip\beamer@colbox@colsep\fi\fi% \if@tempswa\ifdim\beamer@colbox@colseps=0pt\else\vskip\beamer@colbox@colseps\fi\fi% \egroup\egroup% \wd\beamer@tempbox=\hsize% \@tempdima=\wd\beamer@tempbox% \ifx\beamer@colbox@ht\@empty% \else% \ht\beamer@tempbox=\beamer@colbox@ht% \fi% \ifx\beamer@colbox@dp\@empty% \else% \dp\beamer@tempbox=\beamer@colbox@dp% \fi% \ifbeamer@colbox@rounded% \if@tempswa% \begin{beamerboxesrounded}[shadow=\beamer@colbox@shadow,lower=\beamer@colbox@color,upper=normal text]{}% \box\beamer@tempbox% \end{beamerboxesrounded}% \else% \ifdim\@tempdima>\textwidth% \setbox\beamer@tempbox=\hbox to\textwidth{\hss\box\beamer@tempbox\hss}% \fi% \box\beamer@tempbox% \fi% \else% \if@tempswa\setbox\beamer@tempbox=\vbox{% \usebeamercolor{\beamer@colbox@color}% \advance\hsize by \beamer@colbox@colseps\relax% \advance\hsize by \beamer@colbox@colseps\relax% \hskip-\beamer@colbox@colseps% \fboxsep=0pt\colorbox{bg}{% \hskip\beamer@colbox@colseps% \hbox{\box\beamer@tempbox}% \hskip\beamer@colbox@colseps% }% \hskip-\beamer@colbox@colseps% }\fi% \ifdim\@tempdima>\textwidth% \setbox\beamer@tempbox=\hbox to\textwidth{\hskip0pt minus\beamer@leftmargin\relax\box\beamer@tempbox\hskip0pt minus\beamer@rightmargin\relax}% \fi% \box\beamer@tempbox% \fi% \endgroup% } \mode
    { \newenvironment{beamercolorbox}[2][]{}{} } % % Install these colors at the start of the document % \AtBeginDocument{ \usebeamercolor*{alerted text} % Define these colors \usebeamercolor*{example text} % Define these colors \usebeamercolor*{structure} % Define these colors \usebeamercolor{normal text} \color{fg} } % % Math mode color hackery % \newcommand\beamer@setmathcolor{% \usebeamercolor{math text inlined}% \ifbeamercolorempty[fg]{math text inlined}{}{\color{fg}}} \newcommand\donotcoloroutermaths{% \everymath{\everymath{\beamer@setmathcolor}}} \newcommand\beamer@setdisplaymathcolor{% \usebeamercolor{math text displayed}% \ifbeamercolorempty[fg]{math text displayed}{}{\color{fg}\aftergroup\ignorespaces}}% \newcommand\donotcolorouterdisplaymaths{% \everydisplay{\everydisplay{\beamer@setdisplaymathcolor}}} \AtBeginDocument { \everymath\expandafter{\the\everymath\beamer@setmathcolor} \everydisplay\expandafter{\the\everydisplay\beamer@setdisplaymathcolor} } \AtBeginDocument{ % Fix $ usage in tabular: \let\beamer@orig@tabular=\@tabular \def\@tabular{\donotcoloroutermaths\beamer@orig@tabular} % Fix $ usage in underline: \let\beamer@orig@underline=\underline \def\underline#1{{\donotcoloroutermaths\beamer@orig@underline{#1}}} % Fix $ usage in underline: \let\beamer@orig@@textsuperscript=\@textsuperscript \def\@textsuperscript#1{{\donotcoloroutermaths\beamer@orig@@textsuperscript{#1}}} % Fix $ usage in parbox: \let\beamer@orig@pboxswture=\@pboxswtrue \def\@pboxswtrue{\donotcoloroutermaths\beamer@orig@pboxswture} % Fix $$ usage in align: \let\beamer@orig@start@align=\start@align \def\start@align{\donotcolorouterdisplaymaths\donotcoloroutermaths\beamer@setdisplaymathcolor\beamer@orig@start@align} % Fix $$ usage in gather: \let\beamer@orig@start@gather=\start@gather \def\start@gather{\donotcolorouterdisplaymaths\donotcoloroutermaths\beamer@setdisplaymathcolor\beamer@orig@start@gather} % Fix $$ usage in multicolumn: \let\beamer@orig@start@multline=\start@multline \def\start@multline{\donotcolorouterdisplaymaths\donotcoloroutermaths\beamer@setdisplaymathcolor\beamer@orig@start@multline} % Fix $$ usage in eqnarray: \let\beamer@orig@eqnarray=\eqnarray \def\eqnarray{\donotcolorouterdisplaymaths\donotcoloroutermaths\beamer@setdisplaymathcolor\beamer@orig@eqnarray} % Fix \text: \let\beamer@orig@text@=\text@ \def\text@#1{{\ifbeamercolorempty[fg]{normal text in math text}{}{\usebeamercolor[fg]{normal text in math text}}\beamer@orig@text@{#1}}} } % % Allow mixins to survive groups: % \let\beamerorig@set@color=\set@color \let\beamerorig@reset@color=\reset@color \edef\beamer@zeropt{\the\z@} \def\beamer@current@colorhook{} \def\set@color{% \edef\beamer@current@colorhook{\beamer@colorhook}% \beamerorig@set@color} \def\reset@color{% \beamer@lastskip=\lastskip% \edef\beamer@lastskiptexta{\the\lastskip}% \ifx\beamer@lastskiptexta\beamer@zeropt\else% \ifvmode\unskip\fi% \ifhmode\unskip\fi% \fi% \ifx\beamer@current@colorhook\beamer@colorhook% \beamerorig@reset@color% \else% mixin changed -> recalculate \colorlet{beamer@tempcolor}{.}% \applycolormixins{beamer@tempcolor}% \@namelet{current@color}{\string\color@beamer@tempcolor}% \beamerorig@reset@color% \beamer@postscriptcolorhack% \fi% \ifx\beamer@lastskiptexta\beamer@zeropt\else% \ifvmode\vskip\beamer@lastskip\fi% \ifhmode\hskip\beamer@lastskip\fi% \fi% } \ifx\pdftexversion\@undefined \def\beamer@postscriptcolorhack{% \special{ps: \XC@usecolor{beamer@tempcolor}}} \else \def\beamer@postscriptcolorhack{}% \fi % compatibility: \AtBeginDocument{ \colorlet{structure}{structure.fg} \colorlet{beamerstructure}{structure.fg} \colorlet{averagebackgroundcolor}{normal text.bg} } \mode
    { \def\beamersetaveragebackground#1{} \ifbeamer@articlexcolor \colorlet{averagebackgroundcolor}{white} \fi } \colorlet{alert}{red!95!black} \definecolor{structure}{rgb}{0.2,0.2,0.7} % dummy -- not used \colorlet{beameralert}{alert} \colorlet{beamerexample}{green!50!black} \colorlet{beamerstructure}{structure} % dummy \mode
    { \ifbeamer@articlexcolor \definecolor{alert}{rgb}{1,0,0} \colorlet{beameralert}{alert} \colorlet{beamerexample}{green!50!black} \colorlet{beamerstructure}{black} \colorlet{structure}{beamerstructure} \fi } \mode %%% Local Variables: %%% mode: latex %%% TeX-master: "~/texmf/tex/latex/beamer/examples/beamerexample1.tex" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbasecompatibility.sty000664 000000 000000 00000050370 12732552614 027620 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbasecompatibility.sty,v 1.53 2004/10/07 20:17:57 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode % % % Hyperlink fix for problem with empty test in pdfmark.def % % \let\beamer@orighyperlink\hyperlink \def\hyperlink#1#2{\beamer@orighyperlink{#1}{\relax#2}} \providecommand\hyper@pagetransition{} \providecommand\hyper@pageduration{} \providecommand\hyper@pagehidden{} \mode { % Things to be done at the beginning of the document \def\beamer@lastminutepatches{} \def\beamer@firstminutepatches{} } % % Fixes right before the start of the document. % \let\beamer@origdocument\document \def\document{% \beamer@firstminutepatches% \endgroup% \AtBeginDocument{% fix spanish.ldf's meddling with < and > % % Fix spanish.ldf's meddling with < and > % \@ifundefined{deactivatequoting}{}{\deactivatequoting} % Fix meddline with enumerate items \renewcommand\theenumi{\@arabic\c@enumi} \renewcommand\theenumii{\@arabic\c@enumii} \renewcommand\theenumiii{\@arabic\c@enumiii} } \AtBeginDocument{% fix frenchb.ldf's meddling with itemize and : \let\labelitemi\beamer@labelitemi \let\labelitemii\beamer@labelitemii \let\itemize\beamer@itemize \let\list\beamer@list \let\@trivlist\beamer@@trivlist% \catcode`<=12\catcode`>=12} \begingroup\beamer@origdocument% \beamer@lastminutepatches% \ifbeamer@ignorenonframe% \expandafter\mode\expandafter*% \fi} \mode
    { \let\beamer@origdocument\document \def\document{% \beamer@origdocument% \beamer@lastminutepatches} \g@addto@macro\beamer@lastminutepatches{% \ifbeamer@articleactive \else \catcode`<=12\catcode`>=12 \fi } } \AtBeginDocument{\def\es@itemize#1#2#3#4{}}% fix spanish.ldf's with \itemize % % Fix for older versions of geometry % \ifx\ifGm@compatii\@undefined% \def\Gm@lmargin{\Geom@lmargin}\def\Gm@rmargin{\Geom@rmargin} \else \geometry{includeheadfoot} \fi % % Fix deluxetabular floats % \AtBeginDocument{ \def\@plano@float@#1{\begin{table}} \def\end@plano@float@{\end{table}} } % % Fix for implict=false for hyperref % \def\WriteBookmarks{0} \expandafter\def\csname Parent-1\endcsname{} \expandafter\def\csname Parent0\endcsname{} \expandafter\def\csname Parent1\endcsname{} \def\phantomsection{} % % Bugfix for old versions of pdfmark % \begingroup \catcode`P=12 \catcode`T=12 \lowercase{\endgroup \gdef\rem@ptetc#1.#2PT#3!{#1\ifnum#2>\z@.#2\fi}% } \def\strip@pt@and@otherjunk#1{\expandafter\rem@ptetc\the#1!} % % Make the effect of pdfpagetransition and duration global, not local % \define@key{Hyp}{pdfpagetransition}{\gdef\@pdfpagetransition{#1}} \define@key{Hyp}{pdfpageduration}{\gdef\@pdfpageduration{#1}} % % % Fix for babel % % \providecommand\textlatin{} \providecommand\thesubsubsection{} \providecommand\theparagraph{} \providecommand\thesubparagraph{} \providecommand\listoffigures{} \providecommand\listoftables{} \providecommand\l@part{} \providecommand\l@chapter{} % % Obsolete commands from old versions of beamer % \def\tableofcontentscurrent{\tableofcontents[current]} \def\plainframe{\frame[plain]}%obsolete \def\pgfonly{\only}%obsolete \AtBeginDocument{\newcommand{\nameslide}{\alt{\beamer@nameslide}{\@gobble}}}%obsolete \newenvironment{pauses}[1][\c@beamerpauses]{\setcounter{beamerpauses}{#1}}{}%obsolete \def\newoverlaycommand#1#2#3{\def#1{\alt{#2}{#3}}} \def\newoverlayenvironment#1#2#3#4#5{\newenvironment{#1}{\begin{altenv}{#2}{#3}{#4}{#5}}{\end{altenv}}} \newenvironment{columnsonlytextwidth}{\begin{columns}[onlytextwidth]}{\end{columns}} \def\untitledsubsection{\subsection*{}} \def\noteitems{\note[enumerate]} \define@key{beamertoc}{current}[]{\beamer@toc@sectionstyle{show/shaded}\beamer@toc@subsectionstyle{show/show/shaded}} \define@key{beamertoc}{hidesubsections}[]{\beamer@toc@subsectionstyle{show/show/hide}} \define@key{beamertoc}{shadesubsections}[]{\beamer@toc@subsectionstyle{shaded}} \mode {\def\unpause{\onslide{}}} \def\beamer@fixedline#1{% {\setbox\beamer@linebox=\hbox to\textwidth{\hskip-\Gm@lmargin\hskip0.3cm{#1}\hskip-\Gm@rmargin\hskip0.3cm}% \ht\beamer@linebox=2.125ex% \dp\beamer@linebox=1.125ex% \box\beamer@linebox}} \def\beamer@fixedcolouredline#1#2{% \hbox{% \setbox\beamer@linebox=\hbox to\textwidth{\hskip-\Gm@lmargin\hskip0.3cm{#2}\hskip-\Gm@rmargin\hskip0.3cm}% \ht\beamer@linebox=2.625ex% \dp\beamer@linebox=0pt% \setbox\beamer@linebox=\vbox{\box\beamer@linebox\vskip1.125ex}% {\color{#1}\hskip-\Gm@lmargin\vrule width\paperwidth height\ht\beamer@linebox\hskip-\paperwidth\hskip\Gm@lmargin}% \box\beamer@linebox}% } \long\def\beamer@colouredline#1#2{% \hbox{% \setbox\beamer@linebox=\vbox{\hbox to\textwidth{\hskip-\Gm@lmargin{#2}\hskip-\Gm@rmargin}}% {\color{#1}\hskip-\Gm@lmargin\vrule width\paperwidth height\ht\beamer@linebox\hskip-\paperwidth\hskip\Gm@lmargin}% \box\beamer@linebox}% } \def\tinyline#1{% {\tiny\setbox\beamer@linebox=\hbox to\textwidth{\hskip-\Gm@lmargin\hskip0.3cm{#1}\hskip-\Gm@rmargin\hskip0.3cm}% \ht\beamer@linebox=2.06ex% \dp\beamer@linebox=0pt% \box\beamer@linebox% \vskip1.125ex}} \def\tinycolouredline#1#2{% \hbox{\tiny% \setbox\beamer@linebox=\hbox to\textwidth{\hskip-\Gm@lmargin\hskip0.3cm{#2}\hskip-\Gm@rmargin\hskip0.3cm}% \ht\beamer@linebox=2.625ex% \dp\beamer@linebox=0pt% \setbox\beamer@linebox=\vbox{\box\beamer@linebox\vskip1.125ex}% {\color{#1}\hskip-\Gm@lmargin\vrule width\paperwidth height\ht\beamer@linebox\hskip-\paperwidth\hskip\Gm@lmargin}% \box\beamer@linebox}% } \def\colouredline#1#2{% \hbox{% \setbox\beamer@linebox=\hbox to\textwidth{\hskip-\Gm@lmargin\hskip0.3cm{#2}\hskip-\Gm@rmargin\hskip0.3cm}% \setbox\beamer@linebox=\vbox{\vskip2pt\box\beamer@linebox\vskip2pt}% {\color{#1}\hskip-\Gm@lmargin\vrule width\paperwidth height\ht\beamer@linebox\hskip-\paperwidth\hskip\Gm@lmargin}% \box\beamer@linebox}% } \def\beamerline#1{\hbox{\hskip-\Gm@lmargin#1\hskip-\Gm@rmargin}} \def\insertvrule#1#2{\hbox{\color{#2}\hskip-\Gm@lmargin\vrule width \paperwidth height #1\hskip-\Gm@rmargin}} \def\usetitlepagetemplate{\setbeamertemplate{title page}} \def\usepartpagetemplate{\setbeamertemplate{part page}} \def\useframetitletemplate{\setbeamertemplate{frametitle}} \def\useitemizeitemtemplate{\setbeamertemplate{itemize item}} \def\usesubitemizeitemtemplate{\setbeamertemplate{itemize subitem}} \def\usesubsubitemizeitemtemplate{\setbeamertemplate{itemize subsubitem}} \def\useenumerateitemtemplate{\setbeamertemplate{enumerate item}} \def\usesubenumerateitemtemplate{\setbeamertemplate{enumerate subitem}} \def\usesubsubenumerateitemtemplate{\setbeamertemplate{enumerate subsubitem}} \def\useitemizetemplate#1#2{% before and after \setbeamertemplate{itemize/enumerate body begin}{#1}% \setbeamertemplate{itemize/enumerate body end}{#2}} \def\usesubitemizetemplate#1#2{% before and after \setbeamertemplate{itemize/enumerate subbody begin}{#1}% \setbeamertemplate{itemize/enumerate subbody end}{#2}} \def\usesubsubitemizetemplate#1#2{% before and after \setbeamertemplate{itemize/enumerate subsubbody begin}{#1}% \setbeamertemplate{itemize/enumerate subsubbody end}{#2}} \def\useenumerateitemminitemplate{\setbeamertemplate{enumerate mini template}} \let\useenumeratetemplate=\useitemizetemplate \let\usesubenumeratetemplate=\usesubitemizetemplate \let\usesubsubenumeratetemplate=\usesubsubitemizetemplate \def\useleftsidebartemplate{\usesidebartemplate[left]} \def\userightsidebartemplate{\usesidebartemplate[right]} \def\useleftsidebarbackgroundtemplate{\usesidebarbackgroundtemplate[left]} \def\userightsidebarbackgroundtemplate{\usesidebarbackgroundtemplate[right]} \def\useleftsidebarcolortemplate#1{\usesidebarbackgroundtemplate[left]{#1\vrule height\paperheight width\csname beamer@leftsidebar\endcsname}} \def\userightsidebarcolortemplate#1{\usesidebarbackgroundtemplate[right]{#1\vrule height\paperheight width\csname beamer@rightsidebar\endcsname}} \def\useleftsidebarverticalshadingtemplate{\beamertemplatesidebarverticalshading[left]} \def\userightsidebarverticalshadingtemplate{\beamertemplatesidebarverticalshading[right]} \def\useleftsidebarhorizontalshadingtemplate{\beamertemplatesidebarhorizontalshading[left]} \def\userightsidebarhorizontalshadingtemplate{\beamertemplatesidebarhorizontalshading[right]} \def\usedescriptionitemtemplate#1#2{\setbeamertemplate{description item}{#1}\setbeamersize{description width={#2}}} \def\usedescriptionitemofwidthas#1{\setbeamersize{description width of={#1}}}% \def\usetemplatetocsection{\@ifnextchar[\@@usetemplatetocsection\@usetemplatetocsection} \long\def\@@usetemplatetocsection[#1]#2{ \@usetemplatetocsection{#2}{\begin{colormixin}{#1}#2\end{colormixin}\unskip}} \long\def\@usetemplatetocsection#1#2{\setbeamertemplate{section in toc}{#1} \setbeamertemplate{section in toc shaded}{#2}} \def\usetemplatetocsubsection{\@ifnextchar[\@@usetemplatetocsubsection\@usetemplatetocsubsection} \long\def\@@usetemplatetocsubsection[#1]#2{ \@usetemplatetocsubsection{#2}{\begin{colormixin}{#1}#2\end{colormixin}\unskip}} \long\def\@usetemplatetocsubsection#1#2{\setbeamertemplate{subsection in toc}{#1}% \setbeamertemplate{subsection in toc shaded}{#2}} \def\usebibitemtemplate{\setbeamertemplate{bibliography item}} \newcommand\usebibliographyblocktemplate[4]{% \setbeamertemplate{bibliography entry author}{#1}% \setbeamertemplate{bibliography entry title}{#2}% \setbeamertemplate{bibliography entry location}{#3}% \setbeamertemplate{bibliography entry note}{#4}} \def\usebuttontemplate{\setbeamertemplate{button}} \def\usetemplateabstract#1#2{% \setbeamertemplate{abstract title}{} \setbeamertemplate{abstract body begin}{#1} \setbeamertemplate{abstract body end}{#2}} \def\usetemplateverse#1#2{\setbeamertemplate{verse begin}{#1}\setbeamertemplate{verse end}{#2}} \def\usetemplatenote{\setbeamertemplate{note page}} \def\useheadtemplate{\@ifstar{\beamer@useheads}{\beamer@usehead}} \def\beamer@usehead{\setbeamertemplate{headline}[text line]} \def\beamer@useheads{\setbeamertemplate{headline}} \def\addtoheadtemplate{\addtobeamertemplate{headline}} \def\addtofoottemplate{\addtobeamertemplate{footline}} \def\usefoottemplate{\@ifstar{\beamer@usefoots}{\beamer@usefoot}} \def\beamer@usefoot{\setbeamertemplate{footline}[text line]} \def\beamer@usefoots{\setbeamertemplate{footline}} \def\usecaptiontemplate{\setbeamertemplate{caption}} \def\insertblockname{\insertblocktitle} \long\def\usesectionheadtemplate#1#2{% \setbeamertemplate{section in head/foot}{#1}% \setbeamertemplate{section in head/foot shaded}{#2}} \long\def\usesubsectionheadtemplate#1#2{% \setbeamertemplate{subsection in head/foot}{#1}% \setbeamertemplate{subsection in head/foot shaded}{#2}} \long\def\usesectionsidetemplate#1#2{% \setbeamertemplate{section in sidebar}{#1}% \setbeamertemplate{section in sidebar shaded}{#2}} \long\def\usesubsectionsidetemplate#1#2{% \setbeamertemplate{subsection in sidebar}{#1}% \setbeamertemplate{subsection in sidebar shaded}{#2}} \newcommand\usetheoremtemplate[2]{% \setbeamertemplate{theorem begin}{#1} \setbeamertemplate{theorem end}{#2}} \newcommand\useprooftemplate[2]{ \setbeamertemplate{proof begin}{#1} \setbeamertemplate{proof end}{#2}} \def\useqedsymboltemplate{\setbeamertemplate{qed symbol}} \newcommand{\BeispielInline}[1]{{\usebeamercolor[fg]{example text}Beispiel: \ignorespaces#1}} \newcommand{\ExampleInline}[1]{{\usebeamercolor[fg]{example text}Example: \ignorespaces#1}} \def\usenavigationsymbolstemplate{\setbeamertemplate{navigation symbols}} \def\insertnavigationsymbols{\usebeamertemplate***{navigation symbols}} \def\beamersetaveragebackground#1{\setbeamercolor{normal text}{bg=#1}} \def\useminislidetemplate#1#2#3#4#5{% \setbeamertemplate{mini frame}{#1}% \setbeamertemplate{mini frame in current subsection}{#2}% \setbeamertemplate{mini frame in other subsection}{#3}% \setbeamersize{mini frame size={#4},mini frame offset={#5}}} \newcommand\usesidebarbackgroundtemplate[2][left]{\setbeamertemplate{sidebar canvas #1}{#2}} \def\usefootnotetemplate{\setbeamertemplate{footnote}} \def\beamertemplatedefaulttoc{\setbeamertemplate{table of contents}[default]} \def\beamertemplatenumberedsubsectiontoc{\setbeamertemplate{table of contents}[subsections numbered]} \def\beamertemplatenumberedsectiontoc{\setbeamertemplate{table of contents}[sections numbered]} \def\beamertemplatenumberedcirclesectiontoc{\setbeamertemplate{table of contents}[circle numbered]} \def\beamertemplatenumberedsquaresectiontoc{\setbeamertemplate{table of contents}[square numbered]} \def\beamertemplatenumberedballsectiontoc{\setbeamertemplate{table of contents}[ball numbered]} \def\beamertemplateballtoc{\setbeamertemplate{table of contents}[ball]} \def\beamertemplatedotitem{\setbeamertemplate{itemize items}[circle]} \def\beamertemplatetriangleitem{\setbeamertemplate{itemize items}[default]} \def\beamertemplatesquareitem{\setbeamertemplate{itemize items}[square]} \def\beamertemplateballitem{\setbeamertemplate{items}[ball]} \def\beamertemplateenumeratealpha{\setbeamerfont{enumerate items}[default]} \def\beamertemplateenumeratecircle{\setbeamertemplate{enumerate items}[circle]} \def\beamertemplateenumeratesquare{\setbeamertemplate{enumerate items}[square]} \def\beamertemplatelargepartpage{\setbeamertemplate{part page}[default]} \def\beamertemplateboldpartpage{\setbeamerfont{part}{size=\large}% \setbeamerfont{part name}{series=\bfseries}% \setbeamertemplate{part page}[default]} \def\beamertemplatelargetitlepage{\setbeamertemplate{title page}[default]} \def\beamertemplateboldtitlepage{\setbeamerfont{title}{size=\large,series=\bfseries}% \setbeamertemplate{title page}[default]} \def\beamertemplateboldcenterframetitle{\setbeamerfont{frametitle}{size={},series=\bfseries} \setbeamerfont{framesubtitle}{series=\bfseries} \setbeamertemplate{frametitle}[default][center]} \def\beamertemplateboldframetitle{\setbeamerfont{frametitle}{series=\bfseries} \setbeamerfont{framesubtitle}{series=\bfseries} \setbeamertemplate{frametitle}[default]} \def\beamertemplatelargeframetitle{\setbeamertemplate{frametitle}[default]} \def\beamertemplateboldblocks{\setbeamerfont{block title}{size={},series=\bfseries}\setbeamertemplate{blocks}[default]} \def\beamertemplatelargeblocks{\setbeamertemplate{blocks}[default]} \def\beamertemplateshadowblocks{\setbeamertemplate{blocks}[rounded][shadow=true]} \def\beamertemplateplaintoc{\beamertemplatedefaulttoc} \def\beamertemplatecircleminiframeinverted{\beamertemplatecircleminiframe% \usebeamercolor{mini frames}{use=structure,fg=white,bg=structure.bg}} \def\beamertemplatesphereminiframe{\beamertemplatecircleminiframe} \def\beamertemplatesphereminiframeinverted{\beamertemplatecircleminiframeinverted} \def\beamertemplatelightsectionheads{\usesectionheadtemplate{\hfill\insertsectionhead}{\hfill\color{fg!50!bg}\insertsectionhead} \usesubsectionheadtemplate{\insertsubsectionhead}{\color{fg!50!bg}\insertsubsectionhead}} \let\beamertemplatedarksectionheads=\beamertemplatedefaultsectionheads \def\usecontinuationtemplate{\setbeamertemplate{frametitle continuation}} \def\beamertemplatecontinuationroman{\setbeamertemplate{frametitle continuation}[default]} \def\beamertemplatecontinuationtext{\setbeamertemplate{frametitle continuation}[from second]} \def\beamertemplateroundedbuttons{\setbeamertemplate{button}[default]} \def\beamertemplateoutlinebuttons{\setbeamercolor*{button border}{parent=structure,use=structure,fg=structure.fg!50!bg}} \def\beamertemplatesolidbuttons{\setbeamercolor*{button}{use=structure,bg=structure.fg!50!bg,fg=white} \setbeamercolor*{button border}{use=structure,fg=structure.fg!50!bg}} \def\usetemplatequotation#1#2{ \setbeamertemplate{quotation begin}{#1} \setbeamertemplate{quote begin}{#1} \setbeamertemplate{quotation end}{#2} \setbeamertemplate{quote end}{#2}} \def\beamertemplateheadempty{\setbeamertemplate{headline}{}} \def\beamertemplatefootempty{\setbeamertemplate{fotoline}{}} \def\beamertemplatefootpagenumber{\setbeamertemplate{footline}[page number]} \def\beamertemplatecaptionownline{\setbeamertemplate{caption}[caption name own line]} \def\beamertemplatecaptionnwithnumber{\setbeamertemplate{caption}[numbered]} \def\beamertemplateroundedblocks{\setbeamertemplate{blocks}[rounded]} \def\beamertemplatetheoremsunnumbered{\setbeamertemplate{theorems}[default]} \def\beamertemplatetheoremsnumbered{\setbeamertemplate{theorems}[numbered]} \def\beamertemplatetheoremsamslike{\setbeamertemplate{theorems}[ams style]} \def\beamertemplatetheoremssimple{\setbeamertemplate{theorems}[normal font]} \def\beamertemplatenavigationsymbolsempty{\setbeamertemplate{navigation symbols}{}} \def\beamertemplatenavigationsymbolsframe{\setbeamertemplate{navigation symbols}[only frame symbol]} \def\beamertemplatenavigationsymbolsvertical{\setbeamertemplate{navigation symbols}[vertical]} \def\beamertemplatenavigationsymbolshorizontal{\setbeamertemplate{navigation symbols}[horizontal]} \def\beamertemplatedefaultsectionheads{% \setbeamertemplate{section in head/foot}[default] \setbeamertemplate{subsection in head/foot}[default] \setbeamertemplate{section in head/foot shaded}[default] \setbeamertemplate{subsection in head/foot shaded}[default] } \def\beamertemplatecircleminiframe{\setbeamertemplate{mini frames}[default]} \def\beamertemplateticksminiframe{\setbeamertemplate{mini frames}[tick]} \def\beamertemplateboxminiframe{\setbeamertemplate{mini frames}[box]} \newcommand\usesidebartemplate[3][left]{% \setbeamersize{sidebar width #1=#2} \setbeamertemplate{sidebar #1}{#3} } \newcommand\beamertemplatesidebarcolor[2][left]{\setbeamercolor{sidebar #1}{bg=#2}} \def\beamertemplaterightsidebarlogonavigation{\setbeamertemplate{sidebar right}[default] \setbeamersize{sidebar width right=0pt}} \newcommand{\beamertemplatesidebarverticalshading}[3][left]{% \setbeamertemplate{sidebar canvas #1}[vertical shading][top=#3,bottom=#2]} \newcommand{\beamertemplatesidebarhorizontalshading}[3][left]{% \setbeamertemplate{sidebar canvas #1}[vertical shading][right=#3,left=#2]} \mode { \def\beamersetleftmargin#1{\setbeamersize{left text margin=#1}} \def\beamersetrightmargin#1{\setbeamersize{right text margin=#1}} \long\def\useframetemplate#1#2{\setbeamertemplate{frame begin}{#1}\setbeamertemplate{frame end}{#2}} \def\usebackgroundtemplate{\setbeamertemplate{background canvas}} \def\beamertemplatesolidbackgroundcolor#1{\setbeamercolor{normal text}{bg=#1}} \long\def\useblocktemplate#1#2{% \setbeamertemplate{block begin}{#1}% \setbeamertemplate{block end}{#2}} \long\def\usealertblocktemplate#1#2{% \setbeamertemplate{block alerted begin}{#1}% \setbeamertemplate{block alerted end}{#2}} \long\def\useexampleblocktemplate#1#2{% \setbeamertemplate{block example begin}{#1}% \setbeamertemplate{block example end}{#2}} \newcommand{\beamertemplategridbackground}[1][]{\setbeamertemplate{background}[grid][step=#1]} \newcommand{\beamertemplateshadingbackground}[2]{\setbeamertemplate{background canvas}[vertical shading][bottom=#1,top=#2]} \newcommand\usealerttemplate[2]{\setbeamertemplate{alerted text begin}{#1}\setbeamertemplate{alerted text end}{#2}} \newcommand\usestructuretemplate[2]{\setbeamertemplate{structure begin}{#1}\setbeamertemplate{structure end}{#2}} \newcommand{\beamertemplatebookbibitems}{\setbeamertemplate{bibliography item}[book]} \newcommand{\beamertemplatearticlebibitems}{\setbeamertemplate{bibliography item}[article]} \newcommand{\beamertemplatetextbibitems}{\setbeamertemplate{bibliography item}[text]} \newcommand{\beamertemplatearrowbibitems}{\setbeamertemplate{bibliography item}[triangle]} \def\beamertemplatetransparentcovereddynamic{\setbeamercovered{highly dynamic}} \def\beamertemplatetransparentcovereddynamicmedium{\setbeamercovered{dynamic}} \def\beamertemplatetransparentcovered{\setbeamercovered{transparent}} \def\beamertemplatetransparentcoveredmedium{\setbeamercovered{transparent=10}} \def\beamertemplatetransparentcoveredhigh{\setbeamercovered{transparent=5}} \def\beamertemplatetransparentcoveredhighest{\setbeamercovered{transparent=2}} \def\beamersetuncovermixins#1#2{\setbeamercovered{still covered={#1},again covered={#2}}} } \mode %%% Local Variables: %%% mode: latex %%% TeX-master: ../examples/beamerexample1.tex %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbasedecode.sty000664 000000 000000 00000017154 12732552614 026175 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbasedecode.sty,v 1.16 2004/10/07 20:17:57 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \newcount\beamer@slideinframe \newcount\beamer@minimum \newif\ifbeamer@anotherslide \newif\ifbeamer@localanotherslide \newif\ifbeamer@plusencountered % % % Empty test % % \long\def\beamer@ifempty#1{\beamer@xifempty#1@@..\@nil} \long\def\beamer@xifempty#1#2@#3#4#5\@nil{% \ifx#3#4\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} \def\beamer@stoptexts{| stop:0| } { \catcode`\|=13 \catcode`\:=13 \catcode`\,=13 \catcode`\.=13 \catcode`\+=13 \catcode`\-=13 \catcode`\(=13 \catcode`\)=13 \gdef\beamer@masterdecode#1{% must be called within a group \ifnum\catcode`\|=13 \edef|{\string|}\fi% \ifnum\catcode`\:=13 \edef:{\string:}\fi% \ifnum\catcode`\,=13 \edef,{\string,}\fi% \ifnum\catcode`\.=13 \edef.{\string.}\fi% \ifnum\catcode`\+=13 \edef+{\string+}\fi% \ifnum\catcode`\-=13 \edef-{\string-}\fi% \ifnum\catcode`\(=13 \edef({\string(}\fi% \ifnum\catcode`\)=13 \edef){\string)}\fi% \edef\beamer@@@temp{#1\beamer@stoptexts}% \beamer@localanotherslidefalse% \setbox0=\hbox{% \expandafter\beamer@decode\beamer@@@temp% \ifbeamer@localanotherslide\global\beamer@localanotherslidetrue\fi}% } } % Sets dowhat to doif, if \beamer@slideinframe is in the specified % interval. Example: 5-7,-3,9,11,13- would mean pages % 1,2,3,5,6,7,9,11,13,14,15,16,... % % As a side effect, \@another is called whenever the there is a number % in the list that is larger than the current serialnumber \def\beamer@allsign{*} \def\beamer@decode{% \beamer@plusencounteredfalse% \global\beamer@minimum=10000\relax% \gdef\beamer@decaction{}% \gdef\beamer@decactionrev{}% \global\let\beamer@decodefound=\beamer@allsign% \beamer@@decodefind} \def\beamer@@decodefind#1| {% \beamer@@@decodefind#1:|} \def\beamer@@@decodefind#1:#2|{% \beamer@ifempty{#2}% {\beamer@decodefind beamer:#1:}% {\beamer@decodefind #1:#2}} \def\beamer@default{default} \def\beamer@articlemode{article} \def\beamer@presentationmode{presentation} \def\beamer@modeall{all} \def\beamer@ovmodestop{stop} \def\beamer@decodefind#1:#2:{% \def\beamer@ovmode{#1}% \beameratdecodeaction{#2}% \expandafter\futurelet\expandafter\next\expandafter\beamer@checkcat\beamer@spec:% \expandafter\beamer@decodeplus\beamer@spec+:% \expandafter\beamer@decodedot\beamer@spec.:% \ifx\beamer@ovmode\beamer@ovmodestop% \expandafter\beamer@@decode\beamer@decodefound,!% \let\beamer@next=\relax% \ifbeamer@plusencountered\global\advance\c@beamerpauses by1\relax\fi% \else \ifx\beamer@ovmode\beamer@currentmode% \beamer@@decodefound% \else% \ifx\beamer@ovmode\beamer@modeall% \beamer@@decodefound% \else% \ifx\beamer@ovmode\beamer@presentationmode% \ifx\beamer@currentmode\beamer@articlemode\else% \beamer@@decodefound% \fi% \fi% \fi% \fi% \let\beamer@next=\beamer@@decodefind% \fi% \beamer@next} \def\beamer@checkcat#1:{% \ifcat\next a% \gdef\beamer@ovmode{#1}% \ifx\beamer@decodefound\beamer@allsign \gdef\beamer@decodefound{0}% \fi% \gdef\beamer@spec{1-}% \fi% } \def\beamer@@decodefound{% \ifx\beamer@action\beamer@default% \expandafter\gdef\expandafter\beamer@decodefound\expandafter{\beamer@spec}% \else \xdef\beamer@decaction{\beamer@decaction{\beamer@action<\beamer@spec>}} \xdef\beamer@decactionrev{{\beamer@action}\beamer@decactionrev} \fi} \def\beamer@currentaction{default} { \makeatother \gdef\beameratdecodeaction#1{% \beameratdecodeactionb#1@:} \gdef\beameratdecodeactionb#1@#2:{% \beameratdecodeactionc{#1}{#2}} \gdef\beameratgetridofat#1@{% \gdef\beameratspec{#1}% } } \def\beameratdecodeactionc#1#2{% \gdef\beamer@spec{#2}% \ifx\beamer@spec\@empty% \xdef\beamer@spec{#1}% \gdef\beamer@action{default}% \else% \xdef\beamer@action{#1}% \beameratgetridofat#2% \xdef\beamer@spec{\beameratspec} \fi% } \def\beamer@decodeplus{% \def\beamer@spec{}\beamer@@decodeplus} \def\beamer@@decodeplus#1+#2:{% \edef\beamer@spec{\beamer@spec#1}% everything up to first + \beamer@ifempty{#2}{} {% ok, check if followed by number: \beamer@plusencounteredtrue% \beamer@@@decodeplus#2:}} \def\beamer@@@decodeplus{% \@ifnextchar({\beamer@relnumber}{\beamer@relnumber(0)}} \def\beamer@relnumber(#1){% \beamer@plusencounteredtrue% \beamer@tempcount=#1\relax \advance\beamer@tempcount by\c@beamerpauses\relax% \edef\beamer@spec{\beamer@spec\the\beamer@tempcount}% \beamer@@decodeplus} \def\beamer@decodedot{% \def\beamer@spec{}\beamer@@decodedot} \def\beamer@@decodedot#1.#2:{% \edef\beamer@spec{\beamer@spec#1}% everything up to first . \beamer@ifempty{#2}{}{\beamer@@@decodedot#2:}} \def\beamer@@@decodedot{% \@ifnextchar({\beamer@relnumberdot}{\beamer@relnumberdot(0)}} \def\beamer@relnumberdot(#1){% \beamer@tempcount=#1\relax \advance\beamer@tempcount by\c@beamerpauses\relax% \advance\beamer@tempcount by-1\relax% \edef\beamer@spec{\beamer@spec\the\beamer@tempcount}% \beamer@@decodedot} \def\beamer@doifnotinframe{} \def\beamer@@decode{% \@ifnextchar!% {\beamer@decodeend}% {% \@ifnextchar*% {\beamer@decodeall}{% \@ifnextchar-% {\beamer@decodeuntil}% {\beamer@decodenumber}}}} \def\beamer@decodeend!{} \def\beamer@decodeall*,{% \ifnum1<\beamer@minimum\global\beamer@minimum=1\fi% \ifnum1>\beamer@slideinframe% \global\beamer@anotherslidetrue% \beamer@localanotherslidetrue% \fi% \gdef\beamer@doifnotinframe{\beamer@doifinframe}\beamer@@decode} \def\beamer@decodeuntil-#1,{% \ifnum1<\beamer@minimum\global\beamer@minimum=1\fi% \ifnum#1>\beamer@slideinframe\global\beamer@anotherslidetrue\beamer@localanotherslidetrue\fi% \ifnum\beamer@slideinframe>#1\else\gdef\beamer@doifnotinframe{\beamer@doifinframe}\fi% \beamer@@decode} \def\beamer@decodenumber#1{% \@ifnextchar,% {\beamer@decodeone{#1}}% {\@ifnextchar-% {\beamer@decodenumberto{#1}}% {\beamer@decodegobble{#1}}}} \def\beamer@decodegobble#1#2{% \beamer@decodenumber{#1#2}} \def\beamer@decodenumberto#1-{ \@ifnextchar,% {\beamer@decodeto{#1}}% {\beamer@decodebetween{#1}}} \def\beamer@decodeto#1,{% \ifnum#1<\beamer@minimum\global\beamer@minimum=#1\fi% \ifnum#1>\beamer@slideinframe\global\beamer@anotherslidetrue\beamer@localanotherslidetrue\fi% \ifnum#1>\beamer@slideinframe\else\gdef\beamer@doifnotinframe{\beamer@doifinframe}\fi% \beamer@@decode} \def\beamer@decodebetween#1#2,{% \ifnum#1<\beamer@minimum\global\beamer@minimum=#1\fi% \ifnum#1>\beamer@slideinframe\global\beamer@anotherslidetrue\beamer@localanotherslidetrue\fi% \ifnum#2>\beamer@slideinframe\global\beamer@anotherslidetrue\beamer@localanotherslidetrue\fi% \ifnum#1>\beamer@slideinframe\else\ifnum#2<\beamer@slideinframe\else\gdef\beamer@doifnotinframe{\beamer@doifinframe}\fi\fi% \beamer@@decode} \def\beamer@decodeone#1,{% \ifnum#1<\beamer@minimum\global\beamer@minimum=#1\fi% \ifnum#1>\beamer@slideinframe\global\beamer@anotherslidetrue\beamer@localanotherslidetrue\fi% \ifnum#1=\beamer@slideinframe\gdef\beamer@doifnotinframe{\beamer@doifinframe}\fi% \beamer@@decode} \def\beamer@donow{\beamer@doifnotinframe} \def\beamer@saveanother{\let\beamer@savedif=\ifbeamer@anotherslide} \def\beamer@restoreanother{\global\let\ifbeamer@anotherslide=\beamer@savedif} %%% Local Variables: %%% mode: latex %%% TeX-master: "~/texmf/tex/latex/beamer/examples/beamerexample1.tex" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbaseexercise.sty000664 000000 000000 00000001677 12732552614 026564 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbaseexercise.sty,v 1.2 2004/10/07 20:17:57 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \renewcommand{\exerSolnInput} {% \let\webnewpage=\relax \immediate\closeout\ex@solns \ifeq@nosolutions\else \iftherearesolutions% \eqsolutionshook \input{\jobname.sol}% \fi \fi } \renewcommand{\quizSolnInput} {% \let\webnewpage=\relax \immediate\closeout\quiz@solns \ifeq@noquizsolutions\else \iftherearequizsolutions% \input{\jobname.qsl}% \fi \fi } \def\eqEXt{\frame[containsverbatim]\bgroup} \def\endeqEXt{\egroup} \def\eqSQt{\frame[containsverbatim]\bgroup} \def\endeqSQt{\egroup} \def\eqQt{\frame[containsverbatim]\bgroup} \def\endeqQt{\egroup} semantik-0.9.5/src/templates/beamer/beamermindist/beamerbasefont.sty000664 000000 000000 00000026641 12732552614 025721 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbasefont.sty,v 1.11 2004/10/07 20:53:00 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode % % Font theme stuff % \define@key{beamerthm}{size} {\expandafter\def\csname beamer@thmfsize@\beamer@temp\endcsname{#1}} \define@key{beamerthm}{size*} {\expandafter\def\csname beamer@thmfsize@\beamer@temp\endcsname{\fontsize#1}} \define@key{beamerthm}{shape} {\expandafter\def\csname beamer@thmfshape@\beamer@temp\endcsname{#1}} \define@key{beamerthm}{shape*} {\expandafter\def\csname beamer@thmfshape@\beamer@temp\endcsname{\fontshape{#1}}} \define@key{beamerthm}{series} {\expandafter\def\csname beamer@thmfseries@\beamer@temp\endcsname{#1}} \define@key{beamerthm}{series*} {\expandafter\def\csname beamer@thmfseries@\beamer@temp\endcsname{\fontseries{#1}}} \define@key{beamerthm}{family} {\expandafter\def\csname beamer@thmffamily@\beamer@temp\endcsname{#1}} \define@key{beamerthm}{family*} {\expandafter\def\csname beamer@thmffamily@\beamer@temp\endcsname{\fontfamily{#1}}} \define@key{beamerthm}{parent} {\expandafter\def\csname beamer@thmfinherits@\beamer@temp\endcsname{% \@for\@temp:={#1}\do{\expandafter\usebeamerfont\expandafter{\@temp}}}} \def\setbeamerfont{\@ifstar{\beamer@clearbeamerfont}{\beamer@setbeamerfont}} \newcommand\beamer@clearbeamerfont[2]{% \def\beamer@temp{#1} \setkeys{beamerthm}{size={},shape={},series={},family={},parent={}} \setkeys{beamerthm}{#2} } \newcommand\beamer@setbeamerfont[2]{% \def\beamer@temp{#1} \setkeys{beamerthm}{#2} } \def\usebeamerfont{\@ifstar{\reset@font\beamer@usebeamerfont}{\beamer@usebeamerfont}} \newcommand\beamer@usebeamerfont[1]{% \csname beamer@thmfinherits@#1\endcsname% \csname beamer@thmfsize@#1\endcsname% \csname beamer@thmfshape@#1\endcsname% \csname beamer@thmfseries@#1\endcsname% \csname beamer@thmffamily@#1\endcsname% \selectfont} % % Font size stuff - redefinition for oversized fonts. Not used if % other packages like lmodern kick in. % \def\EC@family#1#2#3#4#5{% \DeclareFontShape{#1}{#2}{#3}{#4}% {<5><6><7><8><9><10><10.95><12><14.4>% <17.28><20.74><24.88><29.86><35.83><42.99><51.59>genb*#5}{}} \EC@family{T1}{cmr}{m}{n}{ecrm} \EC@family{T1}{cmr}{m}{sl}{ecsl} \EC@family{T1}{cmr}{m}{it}{ecti} \EC@family{T1}{cmr}{m}{sc}{eccc} \EC@family{T1}{cmr}{bx}{n}{ecbx} \EC@family{T1}{cmr}{b}{n}{ecrb} \EC@family{T1}{cmr}{bx}{it}{ecbi} \EC@family{T1}{cmr}{bx}{sl}{ecbl} \EC@family{T1}{cmr}{bx}{sc}{ecxc} \EC@family{T1}{cmr}{m}{ui}{ecui} \DeclareFontShape{OT1}{cmr}{m}{n}% {<5><6><7><8><9><10><12>gen*cmr% <10.95>cmr10% <14.4>cmr12% <17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmr17}{} \DeclareFontShape{OT1}{cmr}{m}{sl}% {<5><6><7>cmsl8% <8><9>gen*cmsl% <10><10.95>cmsl10% <12><14.4><17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmsl12% }{} \DeclareFontShape{OT1}{cmr}{m}{it}% {<5><6><7>cmti7% <8>cmti8% <9>cmti9% <10><10.95>cmti10% <12><14.4><17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmti12% }{} \DeclareFontShape{OT1}{cmr}{m}{sc}% {<5><6><7><8><9><10><10.95><12>% <14.4><17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmcsc10% }{} \DeclareFontShape{OT1}{cmr}{m}{ui} {<5><6><7><8><9><10><10.95><12>% <14.4><17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmu10% }{} \DeclareFontShape{OT1}{cmr}{b}{n} {<5><6><7><8><9><10><10.95><12>% <14.4><17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmb10% }{} \DeclareFontShape{OT1}{cmr}{bx}{n} {<5><6><7><8><9>gen*cmbx% <10><10.95>cmbx10% <12><14.4><17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmbx12% }{} \DeclareFontShape{OT1}{cmr}{bx}{sl} {<5><6><7><8><9>% <10><10.95><12><14.4><17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmbxsl10% }{} \DeclareFontShape{OT1}{cmr}{bx}{it} {<5><6><7><8><9>% <10><10.95><12><14.4><17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmbxti10% }{} \DeclareFontFamily{T1}{cmss}{} \EC@family{T1}{cmss}{m}{n}{ecss} \EC@family{T1}{cmss}{m}{sl}{ecsi} \EC@family{T1}{cmss}{m}{it}{ecsi} \EC@family{T1}{cmss}{bx}{n}{ecsx} \EC@family{T1}{cmss}{bx}{it}{ecso} \EC@family{T1}{cmss}{bx}{sl}{ecso} \DeclareFontShape{T1}{cmss}{sbc}{n}{% <5><6><7><8><9><10><10.95><12><14.4><17.28>% <20.74><24.88><29.86><35.83><42.99><51.59>% ecssdc10 }{} \DeclareFontShape{OT1}{cmss}{m}{n} {% <5><6><7><8>cmss8% <9>cmss9% <10><10.95>cmss10% <12><14.4>cmss12% <17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmss17% }{} \DeclareFontShape{OT1}{cmss}{m}{sl} {% <5><6><7><8>cmssi8<9>cmssi9% <10><10.95>cmssi10% <12><14.4>cmssi12% <17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmssi17% }{} \DeclareFontShape{OT1}{cmss}{m}{it} {% <5><6><7><8>cmssi8<9>cmssi9% <10><10.95>cmssi10% <12><14.4>cmssi12% <17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmssi17% }{} \DeclareFontShape{OT1}{cmss}{sbc}{n} {% <5><6><7><8><9>cmssdc10% <10><10.95><12><14.4><17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmssdc10% }{} \DeclareFontShape{OT1}{cmss}{bx}{n} {% <5><6><7><8><9>cmssbx10% <10><10.95><12><14.4><17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmssbx10% }{} \ifbeamer@sansmath \SetSymbolFont{operators}{normal}{OT1}{cmss}{m}{n} \ifx\mv@bold\@undefined \else \SetSymbolFont{operators}{bold}{OT1}{cmss}{bx}{n} \fi \fi \AtBeginDocument{% \def\beamer@cmr{cmr} \edef\beamer@fmdef{\mathfamilydefault} % supress for standard cm \ifx\beamer@fmdef\beamer@cmr\beamer@suppressreplacementstrue\fi % supress for mathtime serif and math minion serif \@ifpackageloaded{mathtime}{\ifbeamer@sansmath\else\beamer@suppressreplacementstrue\fi}{} \@ifpackageloaded{mathpmnt}{\ifbeamer@sansmath\else\beamer@suppressreplacementstrue\fi}{} \@ifpackageloaded{lucidabr}{\ifbeamer@sansmath\else\beamer@suppressreplacementstrue\fi}{} \@ifpackageloaded{mtpro}{\ifbeamer@sansmath\else\beamer@suppressreplacementstrue\fi}{} \@ifpackageloaded{hvmath}{\ifbeamer@sansmath\else\beamer@suppressreplacementstrue\fi}{} \ifbeamer@suppressreplacements\else \DeclareSymbolFont{numbers}{\encodingdefault}{\mathfamilydefault}{m}{n} \DeclareSymbolFont{pureletters}{\encodingdefault}{\mathfamilydefault}{m}{it} \SetMathAlphabet{\mathrm}{normal}{\encodingdefault}{\rmdefault}{m}{n} \DeclareMathAlphabet{\mathbf}{\encodingdefault}{\mathfamilydefault}{bx}{n} \DeclareMathAlphabet{\mathsf}{\encodingdefault}{\sfdefault}{m}{n} \DeclareMathAlphabet{\mathit}{\encodingdefault}{\mathfamilydefault}{m}{it} \DeclareMathAlphabet{\mathtt}{\encodingdefault}{\ttdefault}{m}{n} \ifx\mv@bold\@undefined\else \SetSymbolFont{numbers}{bold}{\encodingdefault}{\mathfamilydefault}{bx}{n} \SetSymbolFont{pureletters}{bold}{\encodingdefault}{\mathfamilydefault}{bx}{it} \SetMathAlphabet{\mathrm}{bold}{\encodingdefault}{\rmdefault}{bx}{n} \SetMathAlphabet{\mathbf}{bold}{\encodingdefault}{\mathfamilydefault}{bx}{n} \SetMathAlphabet{\mathsf}{bold}{\encodingdefault}{\sfdefault}{bx}{n} \SetMathAlphabet{\mathit}{bold}{\encodingdefault}{\mathfamilydefault}{bx}{it} \SetMathAlphabet{\mathtt}{bold}{\encodingdefault}{\ttdefault}{bx}{n} \fi \def\operator@font{\mathgroup\symnumbers} \DeclareMathSymbol{0}\mathalpha{numbers}{"30} \DeclareMathSymbol{1}\mathalpha{numbers}{"31} \DeclareMathSymbol{2}\mathalpha{numbers}{"32} \DeclareMathSymbol{3}\mathalpha{numbers}{"33} \DeclareMathSymbol{4}\mathalpha{numbers}{"34} \DeclareMathSymbol{5}\mathalpha{numbers}{"35} \DeclareMathSymbol{6}\mathalpha{numbers}{"36} \DeclareMathSymbol{7}\mathalpha{numbers}{"37} \DeclareMathSymbol{8}\mathalpha{numbers}{"38} \DeclareMathSymbol{9}\mathalpha{numbers}{"39} \DeclareMathSymbol{A}\mathalpha{pureletters}{"41} \DeclareMathSymbol{B}\mathalpha{pureletters}{"42} \DeclareMathSymbol{C}\mathalpha{pureletters}{"43} \DeclareMathSymbol{D}\mathalpha{pureletters}{"44} \DeclareMathSymbol{E}\mathalpha{pureletters}{"45} \DeclareMathSymbol{F}\mathalpha{pureletters}{"46} \DeclareMathSymbol{G}\mathalpha{pureletters}{"47} \DeclareMathSymbol{H}\mathalpha{pureletters}{"48} \DeclareMathSymbol{I}\mathalpha{pureletters}{"49} \DeclareMathSymbol{J}\mathalpha{pureletters}{"4A} \DeclareMathSymbol{K}\mathalpha{pureletters}{"4B} \DeclareMathSymbol{L}\mathalpha{pureletters}{"4C} \DeclareMathSymbol{M}\mathalpha{pureletters}{"4D} \DeclareMathSymbol{N}\mathalpha{pureletters}{"4E} \DeclareMathSymbol{O}\mathalpha{pureletters}{"4F} \DeclareMathSymbol{P}\mathalpha{pureletters}{"50} \DeclareMathSymbol{Q}\mathalpha{pureletters}{"51} \DeclareMathSymbol{R}\mathalpha{pureletters}{"52} \DeclareMathSymbol{S}\mathalpha{pureletters}{"53} \DeclareMathSymbol{T}\mathalpha{pureletters}{"54} \DeclareMathSymbol{U}\mathalpha{pureletters}{"55} \DeclareMathSymbol{V}\mathalpha{pureletters}{"56} \DeclareMathSymbol{W}\mathalpha{pureletters}{"57} \DeclareMathSymbol{X}\mathalpha{pureletters}{"58} \DeclareMathSymbol{Y}\mathalpha{pureletters}{"59} \DeclareMathSymbol{Z}\mathalpha{pureletters}{"5A} \DeclareMathSymbol{a}\mathalpha{pureletters}{"61} \DeclareMathSymbol{b}\mathalpha{pureletters}{"62} \DeclareMathSymbol{c}\mathalpha{pureletters}{"63} \DeclareMathSymbol{d}\mathalpha{pureletters}{"64} \DeclareMathSymbol{e}\mathalpha{pureletters}{"65} \DeclareMathSymbol{f}\mathalpha{pureletters}{"66} \DeclareMathSymbol{g}\mathalpha{pureletters}{"67} \DeclareMathSymbol{h}\mathalpha{pureletters}{"68} \DeclareMathSymbol{i}\mathalpha{pureletters}{"69} \DeclareMathSymbol{j}\mathalpha{pureletters}{"6A} \DeclareMathSymbol{k}\mathalpha{pureletters}{"6B} \DeclareMathSymbol{l}\mathalpha{pureletters}{"6C} \DeclareMathSymbol{m}\mathalpha{pureletters}{"6D} \DeclareMathSymbol{n}\mathalpha{pureletters}{"6E} \DeclareMathSymbol{o}\mathalpha{pureletters}{"6F} \DeclareMathSymbol{p}\mathalpha{pureletters}{"70} \DeclareMathSymbol{q}\mathalpha{pureletters}{"71} \DeclareMathSymbol{r}\mathalpha{pureletters}{"72} \DeclareMathSymbol{s}\mathalpha{pureletters}{"73} \DeclareMathSymbol{t}\mathalpha{pureletters}{"74} \DeclareMathSymbol{u}\mathalpha{pureletters}{"75} \DeclareMathSymbol{v}\mathalpha{pureletters}{"76} \DeclareMathSymbol{w}\mathalpha{pureletters}{"77} \DeclareMathSymbol{x}\mathalpha{pureletters}{"78} \DeclareMathSymbol{y}\mathalpha{pureletters}{"79} \DeclareMathSymbol{z}\mathalpha{pureletters}{"7A} \fi } \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} \DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal} \DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal} \newcommand\Tiny{\@setfontsize\Tiny{4}{5}} \newcommand\TINY{\@setfontsize\Tiny{3}{4}} \mode
    { \let\Tiny=\tiny \let\TINY=\tiny \newcommand\setbeamerfont{\@ifstar{\@gobbletwo}{\@gobbletwo}} \newcommand\usebeamerfont{\@ifstar{\beamer@optgog}{\beamer@optgog}} } \mode %%% Local Variables: %%% mode: latex %%% TeX-master: ../examples/beamerexample1.tex %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbaseframe.sty000664 000000 000000 00000045314 12732552614 026043 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbaseframe.sty,v 1.40 2004/10/07 20:17:57 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \newbox\beamer@framebox \newbox\beamer@frametitlebox \newbox\beamer@zoombox \newcount\beamer@zoomcount \newcount\beamer@zoomframecount \newdimen\beamer@frametextheight \mode { \newif\ifbeamer@inframe \beamer@inframefalse } % % Slide Definitions % \newcounter{subsectionslide}[subsection] \renewcommand\thesubsectionslide{\@arabic\c@subsectionslide} \def\beamer@entrycode{} \def\beamer@exitcode{} \def\beamer@setuplinks{% {% \def\sectionentry##1##2##3##4##5{}% \def\slideentry##1##2##3##4##5##6{}% \dohead% }% } \newenvironment{beamer@frameslide}{% \ifbeamer@autobreak\else% \ifx\beamer@againname\@empty% {\let\@elt\beamer@restorecounter\beamer@overlaycounterresets}% \else% {\let\@elt\beamer@labelrestorecounter\beamer@overlaycounterresets}% \fi% \fi% \global\c@beamerpauses=1\relax% \expandafter\beamer@ifempty\expandafter{\beamer@framestartpage}{% \refstepcounter{subsectionslide}% \xdef\beamer@framestartpage{\the\c@page}% only first time }{\clearpage\beamer@notesactions}% cleanup from previous slide \hypersetup{pdfpagetransition=R}% \hypersetup{pdfpageduration=}% \xdef\beamer@frameendpage{\the\c@page}% every time \beamer@setuplinks% \beamer@displaybreak% \global\setbox\beamer@zoombox=\box\voidb@x% \def\beamer@zoomer{}% \beamer@slidehaszoomfalse% \gdef\insertframetitle{}% \gdef\insertframesubtitle{}% \gdef\beamer@frametitle{}% \gdef\beamer@shortframetitle{}% \gdef\beamer@framesubtitle{}% \let\beamer@startcomment=\beamer@startcommentinframe% % Start slide: \beamer@framenotesbegin% \global\setbox\beamer@framebox=\vbox\bgroup% \beamer@inframetrue% \let\frame=\framelatex% inside frames, use LaTeX's \frame command \begin{beamer@framepauses}% \ifbeamer@shrink% \hsize=\beamer@shrinkfactorinv\hsize% \textwidth=\beamer@shrinkfactorinv\textwidth% \linewidth=\beamer@shrinkfactorinv\linewidth% \fi% % Insert labels if necessary: \ifx\beamer@againname\@empty\else% \nointerlineskip\vbox to0pt{\vss% \label<\the\beamer@slideinframe>{\beamer@againname<\the\beamer@slideinframe>}% \ifnum\beamer@slideinframe=1\relax% \label<1>{\beamer@againname}% \fi% }\nointerlineskip% \fi% \vskip-\parskip\vbox{}% \beamer@initfirstlineunskip% \ifbeamer@plainframe\nointerlineskip\fi}% {\end{beamer@framepauses}% \egroup% \ifx\beamer@frametitle\@empty% \setbox\beamer@frametitlebox=\box\voidb@x% \else% \setbox\beamer@frametitlebox=\vbox{% \vbox{}% {\parskip0pt\usebeamertemplate***{frametitle}\vskip0.25em}% }% \fi% \ifbeamer@plainframe% \beamer@frametextheight=\paperheight% \else% \beamer@frametextheight=\textheight% \fi% \advance\beamer@frametextheight by-\ht\beamer@frametitlebox% \advance\beamer@frametextheight by-\dp\beamer@frametitlebox% \advance\beamer@frametextheight by-\beamer@frametopskip% \ifbeamer@shrink% \beamer@shrinkframebox% \fi% \ifx\beamer@zoomer\@empty \setbox\beamer@framebox=\vbox{% \nobreak\vbox{}\nobreak\par\nobreak\beamer@entrycode\nobreak% \nointerlineskip\unvbox\beamer@frametitlebox% \nobreak\vskip\beamer@frametopskip\nobreak% \nointerlineskip\box\beamer@zoombox\nointerlineskip% \nobreak% \ifbeamer@slidehaszoom\box\beamer@framebox\else\unvbox\beamer@framebox\fi% % bottom skip is added in autobreakframebox }% \beamer@autobreakframebox% \else% \beamer@zoomer% \fi% \beamer@undolabels% \beamer@framenotesend% \box\beamer@framebox} % % Resetting counters % \def\resetcounteronoverlays#1{% \@cons\beamer@overlaycounterresets{{c@#1}}% } \def\resetcountonoverlays#1{% \@cons\beamer@overlaycounterresets{{#1}}% } \def\beamer@overlaycounterresets{} \resetcounteronoverlays{equation} \resetcounteronoverlays{parentequation} \resetcounteronoverlays{footnote} \resetcounteronoverlays{mpfootnote} \resetcounteronoverlays{figure} \resetcounteronoverlays{table} \resetcountonoverlays{beamer@zoomframecount} \def\beamer@savecounter#1{% \@ifundefined{#1}{}% {\expandafter\xdef\csname saved@#1\endcsname% {\expandafter\the\csname #1\endcsname}}% } \def\beamer@restorecounter#1{% \@ifundefined{#1}{}% {\edef\temp{\csname saved@#1\endcsname}% \expandafter\global\csname #1\endcsname=\temp}% } \def\beamer@labelsavecounter#1{% \@ifundefined{#1}{}% {\expandafter\xdef\csname saved@\beamer@againname @#1\endcsname% {\expandafter\the\csname #1\endcsname}}% } \def\beamer@labelrestorecounter#1{% \@ifundefined{#1}{}% {\edef\temp{\csname saved@\beamer@againname @#1\endcsname}% \expandafter\global\csname #1\endcsname=\temp}% } % % Skips % \newskip\beamer@frametopskip \newskip\beamer@framebottomskip % % Keys % \define@key{beamerframe}{label}{\def\beamer@againname{#1}% {\let\@elt\beamer@labelsavecounter\beamer@overlaycounterresets}% } \define@key{beamerframe}{relabel}{\def\beamer@againname{#1}% \def\beamer@undolabels{{\let\@elt\beamer@restorecounter\beamer@overlaycounterresets}}% } \define@key{beamerframe}{plain}[true]{% \beamer@plainframetrue% \def\beamer@frametemplate{\beamer@frametemplate@plain}} %\define@key{beamerframe}{template}{% % \edef\beamer@frametemplate{\expandafter\noexpand\csname beamer@frametemplate@#1\endcsname}} \define@key{beamerframe}{containsverbatim}[true]{\csname beamer@containsverbatim#1\endcsname} \define@key{beamerframe}{c}[true]{% centered \beamer@frametopskip=0pt plus 1fill\relax% \beamer@framebottomskip=0pt plus 1.5fill\relax% \def\beamer@initfirstlineunskip{}% } \define@key{beamerframe}{t}[true]{% top \beamer@frametopskip=.2cm plus 8cm\relax% \beamer@framebottomskip=0pt plus 1fill\relax% \def\beamer@initfirstlineunskip{% \def\beamer@firstlineitemizeunskip{% \vskip-\partopsep\vskip-\topsep\vskip-\parskip% \global\let\beamer@firstlineitemizeunskip=\relax}% \everypar{\global\let\beamer@firstlineitemizeunskip=\relax}} } \define@key{beamerframe}{b}[true]{% bottom \beamer@frametopskip=0pt plus 1fill\relax% \beamer@framebottomskip=0pt\relax% \def\beamer@initfirstlineunskip{}% } \newif\ifbeamer@containsverbatim \newif\ifbeamer@autobreak \newif\ifbeamer@shrink \newif\ifbeamer@plainframe \newif\ifbeamer@slidehaszoom \let\beamer@firstlineitemizeunskip\relax % Save! \let\framelatex=\frame % % The frame environment (a trifle ugly...) % % Copyright notice: the following code is adapted from code from the % amsmath package. \newtoks\beamer@envbody \def\beamer@frameenv{% \def\beamer@process@envbody{\endgroup% \expandafter\expandafter\expandafter\beamer@framecommand\expandafter\beamer@frameoptions\expandafter{\the\beamer@envbody}}% \global\beamer@envbody{}\def\beamer@begin@stack{b}% \begingroup \let\frame\beamer@collect@@body \def\beamer@process@envbody{\frame}% \beamer@process@envbody% } % Normally not executed; only in containsverbatim context: \def\endframe{\egroup\begingroup\def\@currenvir{frame}} \long\def\beamer@push@begins#1\begin#2{\ifx\end#2\else b\expandafter\beamer@push@begins\fi} \long\def\beamer@collect@@body#1\end#2{% \def\test{#1}% \edef\beamer@begin@stack{\beamer@push@begins#1\begin\end \expandafter\@gobble\beamer@begin@stack}% \ifx\@empty\beamer@begin@stack \global\beamer@envbody\expandafter{\the\beamer@envbody#1}% \def\reserved@a{#2} \ifx\reserved@a\beamer@frametext% \endgroup% \let\@next=\beamer@process@envbody % A little tricky! Note the grouping \@checkend{#2}% \else% % ok, just expand it, presumably it will generate the desired \end{frame} \let\@next=\beamer@process@expander% \fi \else \global\beamer@envbody\expandafter{\the\beamer@envbody#1\end{#2}}% \let\@next=\beamer@process@envbody% \fi \@next } \def\beamer@process@expander{% \def\beamer@begin@stack{b}% \expandafter\expandafter\expandafter\beamer@collect@@body\csname end\reserved@a\endcsname\endgroup} \mode {\def\beamer@frametext{frame}} \def\frame{% \ifx\@currenvir\beamer@frametext% \gdef\beamer@frameoptions{}% \let\beamer@next=\beamer@copewithframeenv% \else% \let\beamer@next=\beamer@framecommand% \fi% \beamer@next} \def\beamer@copewithframeenv{% \@ifnextchar<% {\beamer@@frameenvspec}% {% \@ifnextchar[% {\beamer@@frameenvopt}% {\expandafter\beamer@checkforverbatim\beamer@frameoptions containsverbatim\relax}}% } \def\beamer@@frameenvspec<#1>{% \expandafter\gdef\expandafter\beamer@frameoptions\expandafter{\beamer@frameoptions<#1>}% \beamer@copewithframeenv} \def\beamer@@frameenvopt[#1]{% \expandafter\gdef\expandafter\beamer@frameoptions\expandafter{\beamer@frameoptions[#1]}% \beamer@copewithframeenv} \def\beamer@checkforverbatim#1containsverbatim#2\relax{% \beamer@ifempty{#2}% {\beamer@frameenv}% normal frame {% contains verbatim \endgroup% end environment \expandafter\beamer@framecommand\beamer@frameoptions\bgroup}% } % Check for old version: \def\beamer@framecommand{% \edef\beamer@defaultospec{\beamer@gdefaultospec}% \@ifnextchar<\beamer@frame\beamer@checkoldframe} \def\beamer@checkoldframe{\@ifnextchar[\beamer@@checkoldframe{\beamer@frame<*>}} \def\beamer@@checkoldframe[{\@ifnextchar<{\beamer@frame<*>[}{\beamer@@@checkoldframe[}} \def\beamer@@@checkoldframe[#1#2]{% \let\beamer@next=\beamer@newframesyntax% \ifcat#11% a number-like first letter in argument \let\beamer@next=\beamer@oldframesyntax% \else% \beamer@checkforcolon#2:.% \fi% \beamer@next{#1#2}} \def\beamer@checkforcolon#1:#2.{% \beamer@ifempty{#2}{}{\let\beamer@next=\beamer@oldframesyntax}} \def\beamer@newframesyntax#1{\beamer@@@frame<*>[#1]} \def\beamer@oldframesyntax#1{\beamer@@@frame<#1>[]} \def\beamer@framedefaultospec<#1>[#2]{% \def\beamer@defaultospec{#2}% \@ifnextchar[{\beamer@@@@frame<#1>}{\beamer@@@@frame<#1>[]}} \def\beamer@frame<#1>{ \@ifnextchar[{\beamer@@@frame<#1>}{\beamer@@@frame<#1>[]}} \def\beamer@@@frame<#1>[{\@ifnextchar<{\beamer@framedefaultospec<#1>[}{\beamer@@@@frame<#1>[}} \def\beamer@@@@frame<#1>[#2]{% \beamer@savemode% \def\beamer@mode{\mode}% \def\beamer@frametemplate{}% \def\beamer@againname{}% \def\beamer@undolabels{}% \def\beamer@cramped{}% \def\beamer@displaybreak{}% \setbox\beamer@footins=\box\voidb@x% \beamer@autobreakcount=0\relax% \beamer@zoomcount=0\relax% \beamer@containsverbatimfalse% \beamer@autobreakfalse% \beamer@shrinkfalse% \beamer@plainframefalse% \ifbeamer@centered\setkeys{beamerframe}{c}\else\setkeys{beamerframe}{t}\fi% \setkeys{beamerframe}{#2}% \beamer@frametemplate% \refstepcounter{framenumber}% \global\advance\beamer@zoomframecount by1\relax% {\let\@elt\beamer@savecounter\beamer@overlaycounterresets} \gdef\beamer@framestartpage{}% \gdef\beamer@whichframes{#1}% \ifx\beamer@framerestriction\@undefined\else% restriction stuff \expandafter\beamer@checkifinlist\beamer@framerestriction\relax% \fi% \ifbeamer@inlecture% \else% \gdef\beamer@whichframes{all:0}% \fi% \ifx\beamer@againname\@empty% \beamer@slideinframe=0\relax% \beamer@anotherslidefalse% {\beamer@masterdecode{\beamer@whichframes}}% \ifbeamer@anotherslide% \beamer@slideinframe=2\relax% \def\beamer@doifnotinframe{}% \def\beamer@doifinframe{\let\beamer@howtotreatframe\beamer@doseveralframes}% \beamer@anotherslidefalse% {\beamer@masterdecode{\beamer@whichframes}}% \ifbeamer@anotherslide% \let\beamer@howtotreatframe\beamer@doseveralframes% \else% single slide in frame \let\beamer@howtotreatframe\beamer@dosingleframe% \fi% \beamer@donow% \ifbeamer@containsverbatim% \let\beamer@howtotreatframe\beamer@dosingleframe% \fi% \ifbeamer@autobreak% \let\beamer@howtotreatframe\beamer@autobreakframe% \fi% \else% no slides in frame \let\beamer@howtotreatframe\beamer@donoframe% \fi% \else% again mode \let\beamer@howtotreatframe\beamer@doseveralframes% \fi% \beamer@howtotreatframe} \long\def\beamer@donoframe{% \beamer@slideinframe=1\relax% \setbox\beamer@tempbox\vbox\bgroup% \beamer@inframetrue% \leavevmode% \def\pause{}% \afterassignment\beamer@checknoslide\let\beamer@next} \def\beamer@checknoslide{% \ifcat\bgroup\noexpand\beamer@next% \let\beamer@do\relax% \aftergroup\beamer@reseteecodes% \else% \let\beamer@do\beamer@noframesingletoken% \fi% \beamer@do} \def\beamer@noframesingletoken{\beamer@next\egroup\beamer@reseteecodes} \long\def\beamer@doseveralframes#1{% \ifx\beamer@againname\@empty\else% % Again stuff \expandafter \gdef\csname beamer@again@\beamer@againname\endcsname{{#1}}% \fi% \beamer@slideinframe=1\relax% \loop% \beamer@anotherslidefalse% \def\beamer@doifnotinframe{}% \def\beamer@doifinframe{\begin{beamer@frameslide}% #1% \end{beamer@frameslide}}% {\beamer@masterdecode{\beamer@whichframes}}% \beamer@donow% \ifbeamer@anotherslide \advance\beamer@slideinframe by 1\relax \repeat% \beamer@writeslidentry% \beamer@reseteecodes} \def\beamer@dosingleframe{% \beamer@slideinframe=1\relax% \begin{beamer@frameslide}% \bgroup\aftergroup\beamer@endslide\afterassignment\beamer@checkslide\let\beamer@next} \def\beamer@checkslide{% \ifcat\bgroup\noexpand\beamer@next% \let\beamer@do\relax% \else\let\beamer@do\beamer@singletoken\fi% \beamer@do} \def\beamer@endslide{\end{beamer@frameslide}\beamer@writeslidentry\beamer@reseteecodes} \def\beamer@singletoken{\beamer@next\egroup} \def\beamer@writeslidentry{% \expandafter\beamer@ifempty\expandafter{\beamer@framestartpage}{}% does not happen normally {%else \addtocontents{nav}% {\protect\headcommand{% \protect\slideentry{\the\c@section}{\the\c@subsection}{\the\c@subsectionslide}% {\beamer@framestartpage/\beamer@frameendpage}{\lastsubsection}{\the\c@part}}}% \addtocontents{nav}% {\protect\headcommand{% \protect\beamer@framepages{\beamer@framestartpage}{\beamer@frameendpage}}}% \clearpage\beamer@notesactions% } } \def\beamer@reseteecodes{\gdef\beamer@entrycode{}\gdef\beamer@exitcode{}% \beamer@slideinframe=1\relax\beamer@resumemode} % % \includeonlyframes % \def\beamer@checkifinlist#1,#2\relax{ \def\beamer@temp{#1}% \ifx\beamer@temp\beamer@againname\else \def\beamer@temp{#2}% \ifx\beamer@temp\@empty \gdef\beamer@whichframes{all:0}% \else% \beamer@checkifinlist#2\relax% \fi% \fi% } \def\includeonlyframes#1{\def\beamer@framerestriction{#1,}} % % Frames in article mode % \mode
    { \def\endframe{\egroup} \def\frame{\@ifnextchar<\beamer@frame{\beamer@frame<*>}} \def\beamer@frame<#1>{\@ifnextchar[{\beamer@@frame<#1>}{\beamer@@frame<#1>[]}} \long\def\beamer@@frame<#1>[#2]{% \beamer@slideinframe=1\relax% \refstepcounter{framenumber}% \beamer@slideinframe=0\relax% \beamer@anotherslidefalse% {\beamer@masterdecode{#1}}% \ifbeamer@anotherslide% \let\beamer@howtotreatframe\beamer@dosingleframe% \else% no slides in frame \let\beamer@howtotreatframe\beamer@donoframe% \fi% \beamer@slideinframe=1\relax% \beamer@howtotreatframe} \long\def\beamer@donoframe{% \setbox\beamer@tempbox\vbox\bgroup% \beamer@inframetrue% \usebeamertemplate{frame begin}% \bgroup% \aftergroup\beamer@endframe% \ifx\@currenvir\beamer@frametext\else\expandafter\let\expandafter\beamer@next\fi} \def\beamer@dosingleframe{% \bgroup% \beamer@inframetrue% \usebeamertemplate{frame begin}% \bgroup\aftergroup\beamer@endframe% \ifx\@currenvir\beamer@frametext\else\expandafter\let\expandafter\beamer@next\fi} \def\beamer@endframe{% \usebeamertemplate{frame end}\egroup} \providecommand\includeonlyframes[1]{}% no effect } \mode { \beamer@slideinframe=1\relax% } % % Frame counter % \mode { \newcounter{framenumber} \def\insertframenumber{\@arabic\c@framenumber} } % % Pagebreak command % \mode { \renewcommand<>{\pagebreak}[1][4]{\only#2{\beameroriginal\pagebreak[#1]}} \renewcommand<>{\nopagebreak}[1][4]{\only#2{\beameroriginal\nopagebreak[#1]}} \def\framebreak{\pagebreak} \def\noframebreak{\nopagebreak} } % % Linebreak command % \renewcommand<>{\\}{\only#1{\beameroriginal\\}} \renewcommand<>{\@centercr}{\only#1{\beameroriginal\@centercr}} \mode
    { \expandafter\let\expandafter\beamer@origbreak\expandafter=% \csname\expandafter\@gobble\string\\ \endcsname% evil trickery to add a space to the name \DeclareRobustCommand\\{\beamer@ifnextcharospec{\beamer@breaker}{\beamer@@breaker}} \def\beamer@breaker<#1>{\only<#1>{\beamer@origbreak}} \def\beamer@@breaker{\ifbeamer@inframe\else\expandafter\beamer@origbreak\fi} \let\beamer@origbreakcenter=\@centercr \def\@centercr{\beamer@ifnextcharospec{\beamer@breakercenter}{\beamer@@breakercenter}} \def\beamer@breakercenter<#1>{\only<#1>{\beamer@origbreakcenter}} \def\beamer@@breakercenter{\ifbeamer@inframe\else\expandafter\beamer@origbreakcenter\fi} } % % Plain frames % \def\beamer@frametemplate@plain{% \def\beamer@entrycode{\vspace*{-\headheight}}% \def\beamer@exitcode{\vspace*{-\footheight}\thispagestyle{empty}}} % % Again frame % \def\againframe{\@ifnextchar<{\beamer@againframe}{\beamer@againframe<*>}} \def\beamer@againframe<#1>{\@ifnextchar[{\beamer@@againframe<#1>}{\beamer@@againframe<#1>[]}} \def\beamer@@againframe<#1>[{\@ifnextchar<{\beamer@@@@againframe<#1>[}{\beamer@@@againframe<#1>[<*>][}} \def\beamer@@@@againframe<#1>[#2]{\@ifnextchar[{\beamer@@@againframe<#1>[#2]}{\beamer@@@againframe<#1>[#2][]}} \def\beamer@@@againframe<#1>[#2][#3]#4{% \@ifundefined{beamer@again@#4}% {\ClassError{beamer}{No frame has been designated to resume under the name "#4"}{}}% {% \def\beamer@temp{\frame<#1>[#2][#3,relabel=#4]}% \expandafter\let\expandafter\beamer@templet\csname beamer@again@#4\endcsname% \expandafter\beamer@temp\beamer@templet}% } \mode
    { \def\againframe{\@ifnextchar<{\beamer@againframe}{\beamer@againframe<>}} \def\beamer@againframe<#1>{\@ifnextchar[{\beamer@@againframe<#1>}{\beamer@@againframe<#1>[]}} \def\beamer@@againframe<#1>[{\@ifnextchar<{\beamer@@@@againframe<#1>[}{\beamer@@againframe<#1>[<*>][}} \def\beamer@@@@againframe<#1>[#2]{\@ifnextchar[{\beamer@@@againframe<#1>[#2]}{\beamer@@@againframe<#1>[#2][]}} \def\beamer@@@againframe<#1>[#2][#3]#4{} % do nothing } \mode % End in common mode %%% Local Variables: %%% mode: latex %%% TeX-master: "~/texmf/tex/latex/beamer/examples/beamerexample1.tex" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbaseframecomponents.sty000664 000000 000000 00000026116 12732552614 030150 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbaseframecomponents.sty,v 1.37 2004/10/07 20:17:57 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode % % Setting the left and right margin % % \beamer@leftmargin=1cm \beamer@rightmargin=1cm \newif\ifbeamer@dogeometry \define@key{beamer@margin}{text margin left}{\beamer@leftmargin=#1\beamer@dogeometrytrue} \define@key{beamer@margin}{text margin right}{\beamer@rightmargin=#1\beamer@dogeometrytrue} \define@key{beamer@margin}{sidebar width left}{\beamer@leftsidebar=#1\beamer@dogeometrytrue} \define@key{beamer@margin}{sidebar width right}{\beamer@rightsidebar=#1\beamer@dogeometrytrue} \newcommand{\setbeamersize}[1]{% \beamer@dogeometryfalse% \setkeys{beamer@margin}{#1}% \ifbeamer@dogeometry% % Reset left margin now \beamer@tempdim=\beamer@leftmargin% \advance\beamer@tempdim by\beamer@leftsidebar% \geometry{left=\the\beamer@tempdim}% % Reset right margin now \beamer@tempdim=\beamer@rightmargin% \advance\beamer@tempdim by\beamer@rightsidebar% \geometry{right=\the\beamer@tempdim}% \fi% } \mode
    { \newcommand{\setbeamersize}[1]{} } % Constructing a frame: \let\@mkboth\@gobbletwo \def\ps@navigation{ \def\@oddhead{% \begingroup% \setbox\beamer@tempbox=\hbox{\usebeamertemplate***{background canvas}\hyper@pagetransition\hyper@pageduration}% \beamer@tempdim=\ht\beamer@tempbox% \setbox\beamer@tempbox=\hbox{\lower\beamer@tempdim\hbox{\box\beamer@tempbox}}% \wd\beamer@tempbox=0pt\ht\beamer@tempbox=0pt\dp\beamer@tempbox=0pt% \setbox\@tempboxa=\hbox{\usebeamertemplate***{background}}% \beamer@tempdim=\ht\@tempboxa% \setbox\@tempboxa=\hbox{\lower\beamer@tempdim\hbox{\box\@tempboxa}}% \wd\@tempboxa=0pt\ht\@tempboxa=0pt\dp\@tempboxa=0pt% \vbox{\hbox{\hskip-\Gm@lmargin\box\beamer@tempbox\box\@tempboxa}% \hbox{% {% \setbox\beamer@tempbox=\hbox{\hskip-\Gm@lmargin% {\setbox\beamer@tempbox=\hbox{\vbox to \sidebarheight{% \usebeamercolor*{sidebar left}% \usebeamertemplate{sidebar canvas left}% \vss% }}% \wd\beamer@tempbox=0pt\ht\beamer@tempbox=0pt\dp\beamer@tempbox=0pt% \box\beamer@tempbox}% {% \vbox to \sidebarheight{% \usebeamertemplate***{sidebar left}% \vfil% }}}% \beamer@tempdim=\ht\beamer@tempbox% \setbox\beamer@tempbox=\hbox{{\lower\beamer@tempdim\hbox{\box\beamer@tempbox}}}% \wd\beamer@tempbox=0pt\ht\beamer@tempbox=0pt\dp\beamer@tempbox=0pt% \box\beamer@tempbox% }% {% print right sidebar first, since it should be overwritten by headline \setbox\beamer@tempbox=\hbox{\hskip\textwidth\hskip\beamer@rightmargin% {\setbox\beamer@tempbox=\hbox{\vbox to \sidebarheight{% \usebeamercolor*{sidebar right}% \usebeamertemplate{sidebar canvas right}% \vss% }}% \wd\beamer@tempbox=0pt\ht\beamer@tempbox=0pt\dp\beamer@tempbox=0pt% \box\beamer@tempbox}% {% \vbox to \sidebarheight{% \usebeamertemplate***{sidebar right}% \vfil% }}}% \beamer@tempdim=\ht\beamer@tempbox% \setbox\beamer@tempbox=\hbox{{\lower\beamer@tempdim\hbox{\box\beamer@tempbox}}}% \wd\beamer@tempbox=0pt\ht\beamer@tempbox=0pt\dp\beamer@tempbox=0pt% \box\beamer@tempbox% }% \beamer@typesetheadorfoot{headline}% }% \hfil}% \endgroup} \def\@oddfoot{\vbox{\offinterlineskip\hbox{\beamer@typesetheadorfoot{footline}% \hypertarget{Navigation\the\c@page}{}% \hypertarget{page.\the\c@page}{}\hfil}\hbox{}}\hfil} \let\@evenhead\@oddhead \let\@evenfoot\@oddfoot} \pagestyle{navigation} \def\beamer@typesetheadorfoot#1{% typeset the head or footline {\parskip0pt\offinterlineskip% \hbox{% \hskip-\Gm@lmargin% \hbox{% \vbox{% \@tempdima=\textwidth% \textwidth=\paperwidth% \hsize=\textwidth% \def\\{,}% \usebeamertemplate***{#1}% }}% \hskip-\Gm@rmargin% }}\hfil% } % % Patch empty page style, so that transitions and navigation still works % \def\ps@empty{% \let\@mkboth\@gobbletwo% \def\@oddhead{\begingroup% \setbox\beamer@tempbox=\hbox{\usebeamertemplate***{background canvas}\hyper@pagetransition\hyper@pageduration}% \beamer@tempdim=\ht\beamer@tempbox% \setbox\beamer@tempbox=\hbox{\lower\beamer@tempdim\hbox{\box\beamer@tempbox}}% \wd\beamer@tempbox=0pt\ht\beamer@tempbox=0pt\dp\beamer@tempbox=0pt% \setbox\@tempboxa=\hbox{\usebeamertemplate***{background}}% \beamer@tempdim=\ht\@tempboxa% \setbox\@tempboxa=\hbox{\lower\beamer@tempdim\hbox{\box\@tempboxa}}% \wd\@tempboxa=0pt\ht\@tempboxa=0pt\dp\@tempboxa=0pt% \vbox{\hbox{\hskip-\Gm@lmargin\raise\headheight\box\beamer@tempbox\box\@tempboxa}\hfil}% \endgroup% } \def\@oddfoot{\normalcolor{\hypertarget{Navigation\the\c@page}{}\hfil% \setbox\beamer@tempbox=\hbox{\usebeamertemplate***{navigation symbols}\hskip-\Gm@lmargin\hskip2pt}% \ht\beamer@tempbox=0pt% \dp\beamer@tempbox=0pt% \box\beamer@tempbox}} \let\@evenhead\@oddhead\let\@evenfoot\@oddfoot} \def\beamer@calculateheadfoot{% \setbox\beamer@tempbox=\hbox{{\beamer@typesetheadorfoot{footline}}}% \footheight=\ht\beamer@tempbox% \advance\footheight by \dp\beamer@tempbox% \advance\footheight by 4pt% \setbox\beamer@tempbox=\hbox{{\beamer@typesetheadorfoot{headline}}}% \headheight=\ht\beamer@tempbox% \headdp=\dp\beamer@tempbox% \advance\headheight by\headdp% \sidebarheight=\paperheight% \advance\sidebarheight by-\headheight% \advance\sidebarheight by\headdp% \advance\sidebarheight by-\footheight% \advance\sidebarheight by 4pt% \footskip=\footheight% \textheight=\paperheight% \advance\textheight by-\footheight% \advance\textheight by-\headheight% \@colht\textheight% \@colroom\textheight% \vsize\textheight% } \def\insertpagenumber{\thepage} % % % Columns % % \define@key{beamer@col}{onlytextwidth}[true]{% \def\beamer@colentrycode{\hbox to\textwidth\bgroup\ignorespaces}% \def\beamer@colexitcode{\unskip\egroup}} \define@key{beamer@col}{totalwidth}{% \def\beamer@colentrycode{\hbox to#1\bgroup\ignorespaces}% \def\beamer@colexitcode{\unskip\egroup}} \define@key{beamer@col}{c}[true]{\def\beamer@colalign{c}} \define@key{beamer@col}{t}[true]{\def\beamer@colalign{t}} \define@key{beamer@col}{b}[true]{\def\beamer@colalign{b}} \newenvironment<>{columns}[1][]{% \begin{actionenv}#2% \def\beamer@colentrycode{% \hbox to\textwidth\bgroup% \leavevmode% \hskip-\beamer@leftmargin% \nobreak% \beamer@tempdim=\textwidth% \advance\beamer@tempdim by\beamer@leftmargin% \advance\beamer@tempdim by\beamer@rightmargin% \hbox to\beamer@tempdim\bgroup% \hbox{}\hfill\ignorespaces}% \def\beamer@colexitcode{\egroup% \nobreak% \hskip-\beamer@rightmargin\egroup}% \ifbeamer@centered\setkeys{beamer@col}{c}\else\setkeys{beamer@col}{t}\fi% \setkeys{beamer@col}{#1}% \par% \beamer@colentrycode% \def\beamer@colclose{}\ignorespaces}% {\beamer@colclose\def\beamer@colclose{}\beamer@colexitcode\end{actionenv}}% \mode
    { % do sth. more intelligent in the future \newenvironment<>{columns}[1][]{}{} } % % % Column command/environment % % \mode { \def\beamer@columnname{column} \def\column{% \ifx\@currenvir\beamer@columnname% \let\beamer@next=\beamer@columnenv% \else% \let\beamer@next=\beamer@columncom% \fi% \beamer@next} } \newenvironment<>{beamer@columnenv}[2][\beamer@colalign]{% \beamer@colclose\def\beamer@colclose{}% \begin{actionenv}#3% \begin{minipage}[#1]{#2}% \leavevmode\raggedright\ignorespaces} {\end{minipage}\hfill\end{actionenv}\@ignoretrue} \let\endcolumn\endbeamer@columnenv \newcommand<>\beamer@columncom[2][\beamer@colalign]{% \beamer@colclose% \def\beamer@colclose{\end{minipage}\hfill\end{actionenv}\ignorespaces}% \begin{actionenv}#3% \begin{minipage}[#1]{#2}% \leavevmode\raggedright\ignorespaces } \mode
    { \newenvironment<>{beamer@columnenv}[2][]{}{} \newcommand<>{\beamer@columncom}[2][]{} } % % % Footnotes % % \def\@makefnmark{\hbox{\@textsuperscript{{\usebeamercolor[fg]{footnote mark}\usebeamerfont*{footnote mark}\@thefnmark}}}} \def\@makefntext#1{% \def\insertfootnotetext{#1}% \def\insertfootnotemark{\@makefnmark}% \usebeamertemplate***{footnote}} \newbox\beamer@footins \long\def\beamer@framefootnotetext#1#2{% \global\setbox\beamer@footins\vbox{% \unvbox\beamer@footins \reset@font\footnotesize \hsize\columnwidth \@parboxrestore \protected@edef\@currentlabel {\csname p@footnote\endcsname\@thefnmark}% \color@begingroup \uncover#1{\@makefntext{% \rule\z@\footnotesep\ignorespaces#2\@finalstrut\strutbox}}% \color@endgroup}} \long\def\@mpfootnotetext#1#2{% \global\setbox\@mpfootins\vbox{% \unvbox\@mpfootins \reset@font\footnotesize \hsize\columnwidth \@parboxrestore \protected@edef\@currentlabel {\csname p@mpfootnote\endcsname\@thefnmark}% \color@begingroup \uncover#1{\@makefntext{% \rule\z@\footnotesep\ignorespaces#2\@finalstrut\strutbox}}% \color@endgroup}} \let\@footnotetext=\beamer@framefootnotetext \define@key{beamerfootnote}{frame}[true]{% \let\beamer@footnotetext=\beamer@framefootnotetext% \def\beamer@mpfn{footnote}% \def\beamer@thempfn{\thefootnote}} \renewcommand<>{\footnote}[1][]{% \let\beamer@footnotetext=\@footnotetext% \let\beamer@mpfn=\@mpfn% \let\beamer@thempfn=\thempfn% \let\beamer@kvorig=\KV@errx% \def\beamer@footarg{}% \def\KV@errx##1{\edef\beamer@footarg{\@tempa}}% \setkeys{beamerfootnote}{#1}% \let\KV@errx=\beamer@kvorig% \ifx\beamer@footarg\@empty% \def\beamer@next{\stepcounter\beamer@mpfn \protected@xdef\@thefnmark{\beamer@thempfn}% \@footnotemark\beamer@footnotetext{#2}}% \else% \def\beamer@next{% \begingroup \csname c@\beamer@mpfn\endcsname\beamer@footarg\relax \unrestored@protected@xdef\@thefnmark{\beamer@thempfn}% \endgroup \@footnotemark\beamer@footnotetext{#2}}% \fi% \beamer@next} \mode
    { \define@key{beamerfootnote}{frame}[true]{} \let\beamer@origfootnote=\footnote \renewcommand\footnote[1][]{% \let\beamer@kvorig=\KV@errx% \def\beamer@footarg{}% \def\KV@errx##1{\edef\beamer@footarg{\@tempa}}% \setkeys{beamerfootnote}{#1}% \let\KV@errx=\beamer@kvorig% \ifx\beamer@footarg\@empty% \edef\beamer@next{\noexpand\beamer@origfootnote}% \else% \edef\beamer@next{\noexpand\beamer@origfootnote[\beamer@footarg]}% \fi% \beamer@next} } \mode %%% Local Variables: %%% mode: latex %%% TeX-master: "~/texmf/tex/latex/beamer/examples/beamerexample1.tex" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbaseframesize.sty000664 000000 000000 00000020226 12732552614 026731 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbaseframesize.sty,v 1.7 2004/10/07 20:17:57 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \define@key{beamerframe}{allowdisplaybreaks}[4]{% \def\beamer@displaybreak{\allowdisplaybreaks[#1]}} \define@key{beamerframe}{allowframebreaks}[0.95]{% \def\beamer@autobreakfactor{#1}\beamer@autobreaktrue} \define@key{beamerframe}{squeeze}[]{% \def\beamer@cramped{\itemsep0pt\topsep0.5pt\relax}} \define@key{beamerframe}{shrink}[0]{% \def\beamer@shrinkpercentage{#1}% \@tempdima=-#1pt% \@tempdima=0.01\@tempdima% \advance\@tempdima by1pt% \edef\beamer@shrinkfactor{\strip@pt\@tempdima}% \@tempcnta=\@tempdima% \divide\@tempcnta by256\relax% \@tempdima=256pt% \divide\@tempdima by\@tempcnta% \edef\beamer@shrinkfactorinv{\strip@pt\@tempdima}% \beamer@shrinktrue% \def\beamer@cramped{\itemsep0pt\topsep0.5pt\relax}} % % Zoom stuff % \define@key{beamerzoom}{border}[1]{\def\beamer@zoomborderwidth{#1}} \def\framezoom<#1><#2>{\@ifnextchar[{\beamer@framezoom<#1><#2>}{\beamer@framezoom<#1><#2>[]}} \def\beamer@framezoom<#1><#2>[#3](#4,#5)(#6,#7){% \par\nointerlineskip% \global\beamer@slidehaszoomtrue% \advance\beamer@zoomcount by1\relax% \def\beamer@zoomborderwidth{0}% \edef\beamer@labelzoomed{beamer@labelzoomed@\the\beamer@zoomframecount @\the\beamer@zoomcount}% \setkeys{beamerzoom}{#3}% \only<#1>{% {\hypersetup{pdfhighlight={/P},pdfborder={0 0 \beamer@zoomborderwidth}}% \global\setbox\@tempboxa=\vbox{\hyperlink{\beamer@labelzoomed}{\vbox to #7{\hbox to#6{\hfil}\vfil}}}}% \ht\@tempboxa=0pt% \wd\@tempboxa=0pt% \dp\@tempboxa=0pt% \setbox\@tempboxa=\vbox{\moveright#4\hbox{\lower#5\vbox{\box\@tempboxa}}}% \ht\@tempboxa=0pt% \wd\@tempboxa=0pt% \dp\@tempboxa=0pt% \global\setbox\beamer@zoombox=\vbox to0pt{\unvbox\beamer@zoombox\box\@tempboxa}% }% \only<#2>{% \@ifundefined{\beamer@labelzoomed}% {% \hypertarget{\beamer@labelzoomed}{}% \expandafter\gdef\csname\beamer@labelzoomed\endcsname{}% }{}% \gdef\beamer@zoomer{% % compute zoom factor \@tempdima=\beamer@frametextheight% \@tempdimb=#7\relax% \@tempcnta=\@tempdimb% \divide\@tempcnta by4096\relax% \multiply\@tempdima by16\relax% \divide\@tempdima by\@tempcnta% \@tempdimb=\paperwidth% \ifbeamer@plainframe% \else% \advance\@tempdimb by-\beamer@leftsidebar% \advance\@tempdimb by-\beamer@rightsidebar\relax% \fi% \@tempdimc=#6\relax% \@tempcntb=\@tempdimc% \divide\@tempcntb by4096\relax% \multiply\@tempdimb by16\relax% \divide\@tempdimb by\@tempcntb% \ifdim\@tempdimb<\@tempdima% \@tempdima=\@tempdimb% \fi% \edef\beamer@temp{\strip@pt\@tempdima}% \@tempdimc=\beamer@frametextheight% \advance\@tempdimc by4pt% \@tempdimb=\paperwidth% \ifbeamer@plainframe% \else% \advance\@tempdimb by-\beamer@leftsidebar% \advance\@tempdimb by-\beamer@rightsidebar\relax% \fi% \setbox\@tempboxa=\vbox{\hsize=\@tempdimb\Acrobatmenu{GoBack}{\vbox to \beamer@frametextheight{\hbox to\@tempdimb{\hfil}\vfil}}}% \ht\@tempboxa=0pt% \wd\@tempboxa=0pt% \dp\@tempboxa=0pt% \setbox\beamer@framebox=\vbox to\beamer@frametextheight{{% \ifbeamer@plainframe\beamer@leftmargin=\Gm@lmargin\fi% \begin{pgfpicture}{\beamer@leftmargin}{-\beamer@frametextheight}{\beamer@leftmargin}{0pt} \pgfbox[left,top]{\box\@tempboxa} \pgfrect[clip]{\pgfpoint{0pt}{-\@tempdimc}}{\pgfpoint{\@tempdimb}{\@tempdimc}}% \begin{pgfmagnify}{\beamer@temp}{\beamer@temp} \@tempdima=#4\relax% \@tempdimb=#5\relax% \pgftranslateto{\pgfpoint{-\@tempdima}{\@tempdimb}} \pgfbox[left,top]{\vbox{\vbox{}\nointerlineskip\unvbox\beamer@framebox}} \end{pgfmagnify} \end{pgfpicture}% }}% \setbox\beamer@framebox=\vbox{% \nobreak\vbox{}\nobreak\par\nobreak\beamer@entrycode\nobreak% \nointerlineskip\unvbox\beamer@frametitlebox% \nobreak% \box\beamer@framebox% \nobreak% \vss% \beamer@exitcode% }% \global\setbox\beamer@footins=\box\voidb@x% no footnotes in zoomed slides }% }% } \mode
    { \def\framezoom<#1><#2>{\@ifnextchar[{\beamer@framezoom<#1><#2>}{\beamer@framezoom<#1><#2>[]}} \def\beamer@framezoom<#1><#2>[#3](#4,#5)(#6,#7){} } % % Shrink stuff % \def\beamer@shrinkframebox{% \@tempdima=\ht\beamer@framebox% % \ifdim\@tempdima>\beamer@frametextheight% \@tempcnta=\@tempdima% \divide\@tempcnta by 65536\relax% \@tempdimc=\beamer@frametextheight% \divide\@tempdimc by\@tempcnta\relax% \ifdim\@tempdimc>\beamer@shrinkfactor pt% \@tempdimc=\beamer@shrinkfactor pt% \else% \@tempdima=-100\@tempdimc% \advance\@tempdima by100pt% \ClassWarning{beamer}{Frame text is shrunk by a factor of % \strip@pt\@tempdima\space percent instead of \beamer@shrinkpercentage\space percent}% \fi% \edef\beamer@factortemp{\strip@pt\@tempdimc}% \setbox\beamer@framebox=\vbox to\beamer@frametextheight{% \begin{pgfpicture}{0pt}{-\beamer@frametextheight}{0pt}{0pt} \begin{pgfmagnify}{\beamer@factortemp}{\beamer@factortemp} \pgfbox[left,top]{\box\beamer@framebox} \end{pgfmagnify} \end{pgfpicture}% }% % \fi% } % % Auto break stuff % \splittopskip=10pt \newbox\beamer@splitbox \newcount\beamer@autobreakcount \def\beamer@autobreakframe{% \beamer@slideinframe=1\relax% \advance\beamer@autobreakcount by1\relax% \begin{beamer@frameslide}% \bgroup\aftergroup\beamer@endautobreak\let\beamer@next% gobble opening brace } \def\beamer@endautobreak{\end{beamer@frameslide}% \beamer@writeslidentry% \ifvoid\beamer@splitbox% \let\beamer@next=\beamer@reseteecodes% \else% \let\beamer@next=\beamer@continueautobreak% \fi% \beamer@next% } \def\beamer@autobreakframebox{% \global\setbox\beamer@splitbox=\box\voidb@x% \ifbeamer@autobreak% % Ok, frame was overful -> split it! \setbox\@tempboxa=\vsplit\beamer@framebox to\beamer@autobreakfactor\textheight% \global\setbox\beamer@splitbox=\box\beamer@framebox% \setbox\beamer@framebox=\vbox to\textheight{\unvbox\@tempboxa% \vskip\beamer@framebottomskip\vfil% \ifvoid\beamer@splitbox% \ifvoid\beamer@footins% \else% \usebeamercolor*[fg]{footnote}% \footnoterule% \unvbox \beamer@footins% \global\setbox\beamer@footins=\box\voidb@x% \fi% \fi% \beamer@exitcode% }% \else% \setbox\beamer@framebox=\vbox to\textheight{\unvbox\beamer@framebox% \vskip\beamer@framebottomskip% \ifvoid\beamer@footins% \else% \usebeamercolor*[fg]{footnote}% \footnoterule% \unvbox \beamer@footins% \global\setbox\beamer@footins=\box\voidb@x% \fi% \beamer@exitcode}% \global\setbox\beamer@footins=\box\voidb@x% \fi% } \newtoks\beamer@frametitletoks \newtoks\beamer@framesubtitletoks \def\beamer@continueautobreak{% \refstepcounter{framenumber}% \expandafter\beamer@frametitletoks\expandafter{\beamer@frametitle}% \expandafter\beamer@framesubtitletoks\expandafter{\beamer@shortframetitle}% \edef\beamer@callframetitle{\noexpand\frametitle[\the\beamer@framesubtitletoks]{\the\beamer@frametitletoks}} \expandafter\expandafter\expandafter\beamer@autobreakframe \expandafter\expandafter\expandafter{% \expandafter\beamer@callframetitle% \expandafter\framesubtitle\expandafter{\insertframesubtitle}% \unvbox\beamer@splitbox}% } \newcommand\insertcontinuationcount{\the\beamer@autobreakcount} \newcommand\insertcontinuationcountroman{\@Roman\beamer@autobreakcount} \newcommand\insertcontinuationtext{(cont.)} \mode % End in common mode %%% Local Variables: %%% mode: latex %%% TeX-master: "~/texmf/tex/latex/beamer/test/test.tex" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbaselocalstructure.sty000664 000000 000000 00000034252 12732552614 030023 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbaselocalstructure.sty,v 1.49 2004/10/07 20:17:57 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \RequirePackage{enumerate} % % % The \frametitle command % % \newcommand<>\frametitle{\alt#1{\@dblarg\beamer@@frametitle}{\beamer@gobbleoptional}} \long\def\beamer@@frametitle[#1]#2{% \beamer@ifempty{#2}{}{% \gdef\insertframetitle{#2\ifnum\beamer@autobreakcount>0\relax{}\space\usebeamertemplate*{frametitle continuation}\fi}% \gdef\beamer@frametitle{#2}% \gdef\beamer@shortframetitle{#1}% }% } \newcommand\insertshortframetitle[1][]{% {% \beamer@setupshort{#1}% \beamer@insertshort{\beamer@shortframetitle}% }} \mode { \newcommand<>\framesubtitle[1]{\only#2{\gdef\insertframesubtitle{#1}}} } \mode
    { \newcommand<>\frametitle[2][]{\only#3{\gdef\insertframetitle{#2}\beamer@headrenderer}} \long\def\useframetitletemplate#1{\def\beamer@headrenderer{#1}} \useframetitletemplate{\paragraph*{\insertframetitle}\ \par} } % % Alerting % \mode { \newenvironment{alertenv}{\begin{altenv}% {\usebeamertemplate{alerted text begin}\usebeamercolor[fg]{alerted text}\usebeamerfont{alerted text}} {\usebeamertemplate{alerted text end}}{\color{.}}{}}{\end{altenv}} \newenvironment{structureenv}{\begin{altenv}% {\usebeamertemplate{structure text begin}\usebeamercolor[fg]{structure}\usebeamerfont{structure}} {\usebeamertemplate{structure text end}}{\color{.}}{}}{\end{altenv}} \newcommand<>{\alert}[1]{\begin{alertenv}#2#1\end{alertenv}} \newcommand<>{\structure}[1]{\begin{structureenv}#2#1\end{structureenv}} } % % % Predefined Blocks % % \mode { \newenvironment<>{block}[1]{% \begin{actionenv}#2% \def\insertblocktitle{#1}% \par% \usebeamertemplate{block begin}} {\par% \usebeamertemplate{block end}% \end{actionenv}} \newenvironment<>{alertblock}[1]{% \begin{actionenv}#2% \def\insertblocktitle{#1}% \par% \mode{%\usebeamerfont{block}% \setbeamercolor{local structure}{parent=alerted text}}% \usebeamertemplate{block alerted begin}} {\par% \usebeamertemplate{block alerted end}% \end{actionenv}} \newenvironment<>{exampleblock}[1]{% \begin{actionenv}#2% \def\insertblocktitle{#1}% \par% \mode{%\usebeamerfont{block}% \setbeamercolor{local structure}{parent=example text}}% \usebeamertemplate{block example begin}} {\par% \usebeamertemplate{block example end}% \end{actionenv}} } % % List stuff % \setlength\leftmargini {2em} \setlength\leftmarginii {2em} \setlength\leftmarginiii {2em} \setlength \labelsep {.5em} \setlength \labelwidth{\leftmargini} \addtolength\labelwidth{-\labelsep} \def\@listi{\leftmargin\leftmargini \topsep 3\p@ \@plus2\p@ \@minus2.5\p@ \parsep 0\p@ \itemsep3\p@ \@plus2\p@ \@minus3\p@} \let\@listI\@listi \def\@listii{\leftmargin\leftmarginii \topsep 2\p@ \@plus1\p@ \@minus2\p@ \parsep 0\p@ \@plus\p@ \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \topsep 2\p@ \@plus1\p@ \@minus2\p@ \parsep 0\p@ \@plus\p@ \itemsep \parsep} % % % Enumerations % % \def\enumerate{% \ifnum\@enumdepth>2\relax\@toodeep \else% \advance\@enumdepth\@ne% \edef\@enumctr{enum\romannumeral\the\@enumdepth}% \advance\@itemdepth\@ne% \fi% \beamer@computepref\@enumdepth% sets \beameritemnestingprefix \edef\beamer@enumtempl{enumerate \beameritemnestingprefix item}% \@ifnextchar[{\beamer@@enum@}{\beamer@enum@}} \def\beamer@@enum@[{\@ifnextchar<{\beamer@enumdefault[}{\beamer@@@enum@[}} \def\beamer@enumdefault[#1]{\def\beamer@defaultospec{#1}% \@ifnextchar[{\beamer@@@enum@}{\beamer@enum@}} \def\beamer@@@enum@[#1]{% partly copied from enumerate.sty \@enLab{}\let\@enThe\@enQmark \@enloop#1\@enum@ \ifx\@enThe\@enQmark\@warning{The counter will not be printed.% ^^J\space\@spaces\@spaces\@spaces The label is: \the\@enLab}\fi \def\insertenumlabel{\the\@enLab} \def\beamer@enumtempl{enumerate mini template}% \expandafter\let\csname the\@enumctr\endcsname\@enThe \csname c@\@enumctr\endcsname7 \expandafter\settowidth \csname leftmargin\romannumeral\@enumdepth\endcsname {\the\@enLab\hspace{\labelsep}}% \beamer@enum@} \def\beamer@enum@{% \beamer@computepref\@itemdepth% sets \beameritemnestingprefix \usebeamerfont{itemize/enumerate \beameritemnestingprefix body}% \usebeamercolor[fg]{itemize/enumerate \beameritemnestingprefix body}% \usebeamertemplate{itemize/enumerate \beameritemnestingprefix body begin}% \expandafter \list {\usebeamertemplate{\beamer@enumtempl}} {\usecounter\@enumctr% \def\makelabel##1{{\hss\llap{{% \usebeamerfont*{enumerate \beameritemnestingprefix item}% \usebeamercolor[fg]{enumerate \beameritemnestingprefix item}##1}}}}}% \beamer@cramped% \raggedright% \beamer@firstlineitemizeunskip% } \def\endenumerate{\ifhmode\unskip\fi\endlist% \usebeamertemplate{itemize/enumerate \beameritemnestingprefix body end}} \def\beamer@computepref#1{% \let\beameritemnestingprefix\@empty% \ifcase#1\or\or\def\beameritemnestingprefix{sub}\or\def\beameritemnestingprefix{subsub}\or\@toodeep\fi% } \def\insertenumlabel{\theenumi} \def\insertsubenumlabel{\theenumii} \def\insertsubsubenumlabel{\theenumiii} \mode
    { \AtBeginDocument{ \let\beamer@origenumerate=\enumerate \renewcommand{\enumerate}[1][]{\beamer@origenumerate} } } % % % Itemize % % \renewcommand{\itemize}[1][]{% \beamer@ifempty{#1}{}{\def\beamer@defaultospec{#1}}% \ifnum \@itemdepth >2\relax\@toodeep\else \advance\@itemdepth\@ne \beamer@computepref\@itemdepth% sets \beameritemnestingprefix \usebeamerfont{itemize/enumerate \beameritemnestingprefix body}% \usebeamercolor[fg]{itemize/enumerate \beameritemnestingprefix body}% \usebeamertemplate{itemize/enumerate \beameritemnestingprefix body begin}% \list {\usebeamertemplate{itemize \beameritemnestingprefix item}} {\def\makelabel##1{% {% \hss\llap{{% \usebeamerfont*{itemize \beameritemnestingprefix item}% \usebeamercolor[fg]{itemize \beameritemnestingprefix item}##1}}% }% }% } \fi% \beamer@cramped% \raggedright% \beamer@firstlineitemizeunskip% } \def\enditemize{\ifhmode\unskip\fi\endlist% \usebeamertemplate{itemize/enumerate \beameritemnestingprefix body end}} \let\beamer@itemize\itemize \mode
    { \AtBeginDocument{ \let\beamer@origitemize=\itemize \renewcommand{\itemize}[1][]{\beamer@origitemize} } } \def\description{\@ifnextchar[{\beamer@testforospec}{\beamer@descdefault\beamer@descriptionwidth\@@description}} \def\beamer@testforospec[{\@ifnextchar<{\beamer@scandefaultospec[}{\@description[}} \def\beamer@scandefaultospec[#1]{\def\beamer@defaultospec{#1}\description} \def\@description[#1]{\setbox\beamer@tempbox=\hbox{\def\insertdescriptionitem{#1}\usebeamertemplate**{description item}}% \beamer@descdefault\wd\beamer@tempbox\@@description} \def\@@description{% \advance\beamer@descdefault by \labelsep% \list {} {\labelwidth\beamer@descdefault\leftmargin\beamer@descdefault\let\makelabel\beamer@descriptionitem}% \beamer@cramped% \raggedright \beamer@firstlineitemizeunskip% } \def\enddescription{\ifhmode\unskip\fi\endlist} \long\def\beamer@descriptionitem#1{% \def\insertdescriptionitem{#1}% \hfil\hspace\labelsep{\usebeamertemplate**{description item}}} \beamer@descriptionwidth=2cm \define@key{beamer@margin}{descriptionwidth}{% \beamer@descriptionwidth=#1\relax% } \define@key{beamer@margin}{descriptionwidthof}{% \setbox\beamer@tempbox=\hbox{\def\insertdescriptionitem{#1}\usebeamertemplate**{description item}}% \beamer@descriptionwidth=\wd\beamer@tempbox\relax% } \mode
    { \AtBeginDocument{ \let\beamer@origdescription=\description \renewcommand{\description}[1][]{\beamer@origdescription} } } % % Abstract command % \newenvironment<>{abstract}% {\actionenv#1% \usebeamertemplate{abstract begin}% \usebeamerfont{abstract}% \usebeamercolor{abstract}% \usebeamertemplate**{abstract title}}% {\usebeamertemplate{abstract end}\endactionenv} % % Verse, quotation, quote environments % \newenvironment<>{verse} {\actionenv#1% \usebeamertemplate{verse begin}% \usebeamerfont{verse}% \usebeamercolor{verse}% \let\\\@centercr% \list{}{\itemsep \z@ \itemindent -1.5em% \listparindent\itemindent \rightmargin \leftmargin \advance\leftmargin 1.5em \parsep .75em plus .25em minus.25em}% \item\relax} {\endlist\usebeamertemplate{verse end}\endactionenv} \newenvironment<>{quotation} {\actionenv#1% \usebeamertemplate{quotation begin} \usebeamerfont{quotation}% \usebeamercolor{quotation}% \list{}{\listparindent 1.5em% \itemindent \listparindent \rightmargin \leftmargin \parsep \z@ \@plus\p@}% \item\relax} {\endlist\usebeamertemplate{quotation end}\endactionenv} \newenvironment<>{quote} {\actionenv#1% \usebeamertemplate{quote begin}% \usebeamerfont{quote}% \usebeamercolor{quote}% \list{}{\rightmargin \leftmargin} \item\relax} {\endlist\usebeamertemplate{quote end}\endactionenv} \mode
    { \renewenvironment<>{verse}{\actionenv#1\originalverse}{\endoriginalverse\endactionenv} \renewenvironment<>{quotation}{\actionenv#1\originalquotation}{\endoriginalquotation\endactionenv} \renewenvironment<>{quote}{\actionenv#1\originalquote}{\endoriginalquote\endactionenv} } % % Bibliography code % \newenvironment{thebibliography}[1] {%\leavevmode\unskip% \list{\@biblabel{\@arabic\c@enumiv}}% {\settowidth\labelwidth{\beamer@biblabeltemplate{\@biblabel{#1}}}% \leftmargin\labelwidth \advance\leftmargin\labelsep \itemsep=0pt% \partopsep=0pt% \topsep=0pt% \usecounter{enumiv}% \let\p@enumiv\@empty \renewcommand\theenumiv{\@arabic\c@enumiv} \let\makelabel\beamer@biblabeltemplate}% \sloppy\raggedright \clubpenalty10000 \@clubpenalty \clubpenalty \widowpenalty10000% \sfcode`\.\@m} {\def\@noitemerr {\@latex@warning{Empty `thebibliography' environment}}% \ifhmode\unskip\fi\endlist} \long\def\beamer@biblabeltemplate#1{\def\insertbiblabel{#1}\usebeamertemplate*{bibliography item}\hfil} \def\bibitem{\@ifnextchar<{\beamer@bibitem@store}{\gdef\beamer@bibstore{}\beamer@plainbibitem}} \def\beamer@bibitem@store<#1>{\gdef\beamer@bibstore{<#1>}\beamer@plainbibitem} \def\beamer@plainbibitem{\@ifnextchar[\@lbibitem\beamer@bibitem} \def\@lbibitem[#1]#2{\expandafter\item\beamer@bibstore[\@biblabel{#1}\hfill]% \@ifundefined{beamerbib@#2@\the\c@framenumber}{\if@filesw {\let\protect\noexpand \immediate \write\@auxout{\string\bibcite{#2}{\noexpand\hyperlink{beamerbib#2}{#1}}}}\fi% \global\@namedef{beamerbib@#2@\the\c@framenumber}{\relax}% \hypertarget{beamerbib#2}{}% }{}% \def\newblock{\beamer@newblock}\newblock% \hbox{}\ignorespaces} \def\beamer@bibitem#1{\@bibitem{#1}\ignorespaces} \def\@bibitem#1{\expandafter\item\beamer@bibstore\@ifundefined{beamerbib@#1@\the\c@framenumber}% {\if@filesw \immediate\write\@auxout {\string\bibcite{#1}{\noexpand\hyperlink{beamerbib#1}{\the\value{\@listctr}}}}\fi% \global\@namedef{beamerbib@#1@\the\c@framenumber}{\relax}% \hypertarget{beamerbib#1}{}}% {}% \def\newblock{\beamer@newblock}\newblock} \def\beamer@newblock{% \usebeamercolor[fg]{bibliography entry author}% \usebeamerfont{bibliography entry author}% \usebeamertemplate{bibliography entry author}% \def\newblock{% \usebeamercolor[fg]{bibliography entry title}% \usebeamerfont{bibliography entry title}% \usebeamertemplate{bibliography entry title}% \def\newblock{% \usebeamercolor[fg]{bibliography entry location}% \usebeamerfont{bibliography entry location}% \usebeamertemplate{bibliography entry location}% \def\newblock{% \usebeamercolor[fg]{bibliography entry note}% \usebeamerfont{bibliography entry note}% \usebeamertemplate{bibliography entry note}}}}% \leavevmode\setbox\beamer@tempbox=\hbox{}\ht\beamer@tempbox=1.5em\box\beamer@tempbox} \mode
    { \AtBeginDocument{ \renewcommand<>{\bibitem}{\beameroriginal{\bibitem}}%should actually suppress } } % % Floats and tables % \newenvironment{figure}[1][]{% \def\@captype{figure}% \par\nobreak\begin{center}\nobreak} {\par\nobreak\end{center}} \newcounter{figure} \renewcommand\thefigure{\@arabic\c@figure} \newenvironment{table}[1][]{% \def\@captype{table}% \par\nobreak\begin{center}\nobreak} {\par\nobreak\end{center}\nobreak} \newcounter{table} \renewcommand\thetable{\@arabic\c@table} \newlength\abovecaptionskip \newlength\belowcaptionskip \setlength\abovecaptionskip{7pt} \setlength\belowcaptionskip{7pt} \def\caption{ \ifx\@captype\@undefined \@latex@error{\noexpand\caption outside figure or table}\@ehd \expandafter\@gobble \else \refstepcounter\@captype \expandafter\@firstofone \fi {\@dblarg{\@caption\@captype}}% } \long\def\@caption#1[#2]#3{% second argument ignored \par\nobreak \begingroup \@parboxrestore \if@minipage \@setminipage \fi \beamer@makecaption{#1}{\ignorespaces #3}\par\nobreak \endgroup} \long\def\beamer@makecaption#1#2{% \def\insertcaptionname{\csname#1name\endcsname}% \def\insertcaptionnumber{\csname the#1\endcsname}% \def\insertcaption{#2}% \nobreak\vskip\abovecaptionskip\nobreak \sbox\@tempboxa{\usebeamertemplate**{caption}}% \ifdim \wd\@tempboxa >\hsize \usebeamertemplate**{caption}\par \else \global \@minipagefalse \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% \fi \nobreak\vskip\belowcaptionskip\nobreak} \mode %%% Local Variables: %%% mode: latex %%% TeX-master: "~/texmf/tex/latex/beamer/examples/beamerexample1.tex" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbasemisc.sty000664 000000 000000 00000016667 12732552614 025715 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbasemisc.sty,v 1.19 2004/10/07 20:17:57 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode % Calculate maximum number of sections/subsections per part \beamer@subsectionmax=0\relax \beamer@sectionmax=0\relax \beamer@sectioncount=0\relax \def\headcommand#1{\global\advance\beamer@totalheads by1\relax% \expandafter\gdef\csname @@head\the\beamer@totalheads\endcsname{#1}} \def\dohead{\beamer@headcounter=0\loop\ifnum\beamer@headcounter<\beamer@totalheads% \advance\beamer@headcounter by1\relax% \csname @@head\the\beamer@headcounter\endcsname\repeat} \def\beamer@startpageofframe{1} \def\beamer@endpageofframe{1} \def\beamer@startpageofsubsection{1} \def\beamer@endpageofsubsection{1} \def\beamer@startpageofsection{1} \def\beamer@endpageofsection{1} \def\beamer@startpageofpart{1} \def\beamer@endpageofpart{1} \def\beamer@endpageofdocument{1} \def\beamer@startpageofappendix{} \def\inserttotalframenumber{1} \def\partentry#1#2{\beamer@sectioncount=0} \def\beamer@initsectionentry#1#2#3#4#5{\advance\beamer@sectioncount by1\relax% \ifnum\beamer@sectionmax<\beamer@sectioncount\beamer@sectionmax=\beamer@sectioncount\fi} \def\beamer@initslideentry#1#2#3#4#5#6{\ifnum\beamer@subsectionmax<#2\relax\beamer@subsectionmax=#2\fi} \def\beamer@framepages#1#2{} \def\beamer@subsectionpages#1#2{} \def\beamer@sectionpages#1#2{} \def\beamer@partpages#1#2{} \def\beamer@appendixpages#1{\gdef\beamer@startpageofappendix{#1}} \def\beamer@documentpages#1{\gdef\beamer@endpageofdocument{#1}} \setlength\lineskip{1\p@} \setlength\normallineskip{1\p@} \renewcommand\baselinestretch{} \setlength\parskip{0\p@}% \@plus \p@} \@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 \setcounter{topnumber}{2} \renewcommand\topfraction{.7} \setcounter{bottomnumber}{1} \renewcommand\bottomfraction{.3} \setcounter{totalnumber}{3} \renewcommand\textfraction{.9}%.2} \renewcommand\floatpagefraction{.1}%5} \setcounter{dbltopnumber}{2} \renewcommand\dbltopfraction{.7} \renewcommand\dblfloatpagefraction{.5} \@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty \@itempenalty -\@lowpenalty \g@addto@macro\beamer@lastminutepatches{ \beamer@activecjk \makeatletter \@input{\jobname.nav} \let\beamer@sectionentryorig=\sectionentry \let\beamer@slideentryorig=\slideentry \let\sectionentry=\beamer@initsectionentry \let\slideentry=\beamer@initslideentry \dohead \let\sectionentry=\beamer@sectionentryorig \let\slideentry=\beamer@slideentryorig \beamer@calculateheadfoot \ifbeamer@draftmode \setbeamertemplate{footline}{ \color{black!25}% \kern-\Gm@lmargin\vrule width\paperwidth height\footheight\kern-\Gm@rmargin} \setbeamertemplate{headline}{ \color{black!25}% \kern-\Gm@lmargin\vrule width\paperwidth height\headheight\kern-\Gm@rmargin} \setbeamertemplate{sidebar left}{% \color{black!20}% \vrule width \beamer@leftsidebar height\sidebarheight} \setbeamertemplate{sidebar right}{% \color{black!20}% \vrule width \beamer@rightsidebar height\sidebarheight} \setbeamertemplate{sidebar canvas left}{} \setbeamertemplate{sidebar canvas right}{} \fi \makeatother } \setcounter{tocdepth}{3} \setlength\arraycolsep{5\p@} \setlength\tabcolsep{6\p@} \setlength\arrayrulewidth{.4\p@} \setlength\doublerulesep{2\p@} \setlength\tabbingsep{\labelsep} \skip\@mpfootins = \skip\footins \setlength\fboxsep{3\p@} \setlength\fboxrule{.4\p@} \newcommand\contentsname{Contents} \newcommand\listfigurename{List of Figures} \newcommand\listtablename{List of Tables} \newcommand\refname{References} \newcommand\bibname{Bibliography} \newcommand\indexname{Index} \newcommand\figurename{Figure} \newcommand\algorithmname{Algorithm} \newcommand\tablename{Table} \newcommand\partname{Part} \newcommand\chaptername{Chapter} \newcommand\appendixname{Appendix} \newcommand\abstractname{Abstract} \def\today{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year} \setlength\columnsep{10\p@} \setlength\columnseprule{0\p@} \pagenumbering{arabic} \onecolumn \parindent0pt \AtEndDocument{% \clearpage \beamer@tempcount=\c@page\advance\beamer@tempcount by -1% \if@filesw \immediate\write\@auxout{\string\@writefile{nav}% {\noexpand\headcommand{\noexpand\beamer@partpages{\the\beamer@partstartpage}{\the\beamer@tempcount}}}}% \immediate\write\@auxout{\string\@writefile{nav}% {\noexpand\headcommand{\noexpand\beamer@subsectionpages{\the\beamer@subsectionstartpage}{\the\beamer@tempcount}}}}% \immediate\write\@auxout{\string\@writefile{nav}% {\noexpand\headcommand{\noexpand\beamer@sectionpages{\the\beamer@sectionstartpage}{\the\beamer@tempcount}}}}% \immediate\write\@auxout{\string\@writefile{nav}% {\noexpand\headcommand{\noexpand\beamer@documentpages{\the\beamer@tempcount}}}} \immediate\write\@auxout{\string\@writefile{nav}% {\noexpand\headcommand{\noexpand\def\noexpand\inserttotalframenumber{\the\c@framenumber}}}} \newwrite\tf@nav \immediate\openout\tf@nav\jobname.nav\relax \newwrite\tf@toc \immediate\openout\tf@toc\jobname.toc\relax \newwrite\tf@snm \immediate\openout\tf@snm\jobname.snm\relax \fi } % % Managing short inserts % \define@key{beamerst}{respectlinebreaks}[true]{% \def\beamer@stlinebreakrule{}} \define@key{beamerst}{width}{% \def\beamer@ststart{% \begin{minipage}[t]{#1}% \raggedright% \beamer@stalign% \beamer@stlinebreakrule% }% \def\beamer@stend{\end{minipage}}} \define@key{beamerst}{center}[true]{% \def\beamer@stalign{\centering}} \define@key{beamerst}{spill}[true]{% \def\beamer@stalign{\parshape...}}% \newcommand{\beamer@setupshort}[1]{% \def\beamer@stlinebreakrule{\def\\{}}% \def\beamer@stalign{}% \def\beamer@ststart{\hbox\bgroup\def\\{}}% \def\beamer@stend{\egroup}% \setkeys{beamerst}{#1}}% \newcommand{\beamer@insertshort}[1]{% \beamer@ststart#1\beamer@stend% } \mode \AtBeginDocument { \ifx\includegraphics\@undefined \else \renewcommand<>\includegraphics{\alt#1{\beameroriginal\includegraphics}{\beamer@gobbleoptional}} \fi \ifx\pgfuseimage\@undefined \else \renewcommand<>\pgfuseimage{\alt#1{\beameroriginal\pgfuseimage}{\beamer@gobbleoptional}} \renewcommand<>\pgfimage{\alt#1{\beameroriginal\pgfimage}{\beamer@gobbleoptional}} \fi } \AtBeginDocument{ % The following code was send to me by Rolf Niepraschk \@ifundefined{Gin@driver}{}% {% \ifx\Gin@driver\@empty\else% \filename@parse{\Gin@driver}\@tempswafalse% \def\reserved@a{dvips}% \ifx\filename@base\reserved@a\@tempswatrue\fi% \def\reserved@a{dvipdfm}% \ifx\filename@base\reserved@a\@tempswatrue\fi% \if@tempswa% \AtBeginDvi{% \special{papersize=\the\paperwidth,\the\paperheight}}% \fi% \def\reserved@a{pdftex}% \ifx\filename@base\reserved@a \pdfpagewidth\paperwidth\pdfpageheight\paperheight% \fi% \def\reserved@a{vtex}% \ifx\filename@base\reserved@a \mediawidth\paperwidth\mediaheight\paperheight% \fi% \fi } } %%% Local Variables: %%% mode: latex %%% TeX-master: "~/texmf/tex/latex/beamer/examples/beamerexample1.tex" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbasemodes.sty000664 000000 000000 00000017731 12732552614 026062 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbasemodes.sty,v 1.20 2004/10/07 20:17:57 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. % % Global Declarations used by beamer in all modes % \newbox\beamer@tempbox \newif\ifbeamer@blocks \newif\ifbeamer@ams \newif\ifbeamer@countsect \beamer@blockstrue \beamer@amstrue \beamer@countsectfalse \newcount\beamer@tempcount \newcounter{beamerpauses} \RequirePackage{beamerbasedecode} % % Presentation/article stuff % % Copyright notice: Part of the following code is taken from the % package comment.sty by Victor Eijkhout % % % Versioning stuff % \def\beamer@endinputifotherversion#1{% \let\beamer@next=\relax% \@tempdima=\beamer@version pt\relax% \ifdim\@tempdima<#1% \let\beamer@next=\endinput% \else% \ifdim\@tempdima>#1% \let\beamer@next=\endinput% \fi% \fi% \beamer@next} % % Comment stuff. This will also be needed, if we switch to another % class, so define it here already. % \newif\ifbeamer@inpresentation \beamer@inpresentationtrue \def\beamer@makeinnocent#1{\catcode`#1=12 } \def\beamer@startcomment{% \begingroup% \let\do\beamer@makeinnocent\dospecials% \beamer@makeinnocent\^^L% and whatever other special cases \endlinechar`\^^M \catcode`\^^M=12 \beamer@processline} {\catcode`\^^M=12\endlinechar=-1% \long\gdef\beamer@processline#1^^M{% \def\beamer@test{#1}% \ifx\beamer@test\beamer@stopmodestar% \let\next=\beamer@modeoutsideframe% \else% \ifx\beamer@test\beamer@stopmode% \let\next=\mode% \else% \ifx\beamer@test\beamer@stoparticle% \let\next=\article% \else% \ifx\beamer@test\beamer@stoppresentation% \let\next=\presentation% \else% \ifx\beamer@test\beamer@stopcommon% \let\next=\common% \else% \ifx\beamer@test\beamer@stopdocument% \let\next=\beamer@enddocument% \else \ifx\beamer@test\beamer@begindocument% \let\next=\beamer@startdocument% \else \let\next=\beamer@processline% \fi% \fi% \fi% \fi% \fi% \fi% \fi% \next} } \def\beamer@enddocument{\beamer@closer\end{document}} \def\beamer@startdocument{\beamer@closer\begin{document}\def\beamer@closer{}\common} \def\beamer@closer{} {\escapechar=-1\relax% \xdef\beamer@stopmode{\string\\mode} \xdef\beamer@stopmodestar{\string\\mode*} \xdef\beamer@stoparticle{\string\\article} \xdef\beamer@stoppresentation{\string\\presentation} \xdef\beamer@stopcommon{\string\\common} \xdef\beamer@stopdocument{\string\\end\string\{document\string\}} \xdef\beamer@begindocument{\string\\begin\string\{document\string\}} } \newbox\beamer@commentbox \def\beamer@startcommentinframe{% \begingroup% \edef\beamer@closer{\egroup\beamer@closer}% \setbox\beamer@commentbox=\vbox\bgroup\leavevmode} \def\beamer@outsidemode{\afterassignment\beamer@treat\let\beamer@nexttoken=} \def\beamer@treat{% \ifx\beamer@nexttoken\frame\let\next=\beamer@stopoutsidemode\fi% \ifx\beamer@nexttoken\lecture\let\next=\beamer@stopoutsidemode\fi% \ifx\beamer@nexttoken\note\let\next=\beamer@stopoutsidemode\fi% \ifx\beamer@nexttoken\appendix\let\next=\beamer@stopoutsidemode\fi% \ifx\beamer@nexttoken\againframe\let\next=\beamer@stopoutsidemode\fi% \ifx\beamer@nexttoken\section\let\next=\beamer@stopoutsidemode\fi% \ifx\beamer@nexttoken\subsection\let\next=\beamer@stopoutsidemode\fi% \ifx\beamer@nexttoken\part\let\next=\beamer@stopoutsidemode\fi% \ifx\beamer@nexttoken\article\let\next=\beamer@stopoutsidemode\fi% \ifx\beamer@nexttoken\mode\let\next=\beamer@stopoutsidemode\fi% \ifx\beamer@nexttoken\common\let\next=\beamer@stopoutsidemode\fi% \ifx\beamer@nexttoken\presentation\let\next=\beamer@stopoutsidemode\fi% \ifx\beamer@nexttoken\begin\let\next=\beamer@checkbeginframe\fi% \ifx\beamer@nexttoken\end\let\next=\beamer@checkenddoc\fi% \next} \def\beamer@stopoutsidemode{\beamer@nexttoken} \def\beamer@checkenddoc#1{% \def\beamer@temp{#1}% \ifx\beamer@temp\beamer@enddoc% \let\next=\beamer@enddocument% \else% \let\next=\beamer@outsidemode% \fi% \next} \def\beamer@enddoc{document} \def\beamer@checkbeginframe#1{% \def\beamer@temp{#1}% \ifx\beamer@temp\beamer@frametext% \let\next=\beamer@beginframeenv% \else% \let\next=\beamer@outsidemode% \fi% \next} \def\beamer@beginframeenv{\begin{frame}} \def\beamer@modeoutsideframe{% \beamer@closer% \gdef\beamer@mode{\beamer@modeoutsideframe}% \ifbeamer@inpresentation% \let\next=\beamer@outsidemode% \gdef\beamer@closer{}% \else% \let\next=\relax% \gdef\beamer@closer{}% \fi% \next} %obsolete, do note use: \def\presentation{\mode} \def\article{\mode
    } \def\common{\mode} % % Mode command % \def\mode{\@ifstar\beamer@modeoutsideframe\beamer@@@mode} \def\beamer@@@mode<#1>{\beamer@closer\@ifnextchar\bgroup{\beamer@modeinline<#1>}{\beamer@switchmode<#1>}} \long\def\beamer@modeinline<#1>#2{% \gdef\beamer@closer{}% \def\beamer@doifnotinframe{\@gobble}\def\beamer@doifinframe{\@firstofone}% {\beamer@saveanother\beamer@slideinframe=1\relax% \beamer@masterdecode{#1}% \beamer@restoreanother}\beamer@donow{#2}% \beamer@mode\par} \def\beamer@switchmode<#1>{% \gdef\beamer@mode{\beamer@switchmode<#1>}% \def\beamer@doifnotinframe{% \let\next=\beamer@startcomment% \gdef\beamer@closer{\endgroup}% }% \def\beamer@doifinframe{% \let\next=\relax% \gdef\beamer@closer{}% }% {\beamer@saveanother\beamer@slideinframe=1\relax% \beamer@masterdecode{#1}% \beamer@restoreanother}\beamer@donow% \next} \mode \newcount\beamer@modecount \def\beamer@pushmode#1{% \expandafter\gdef\csname beamer@savedmode@\the\beamer@modecount\endcsname{#1}% \global\advance\beamer@modecount by1\relax} \def\beamer@popmode{ \global\advance\beamer@modecount by-1\relax% \csname beamer@savedmode@\the\beamer@modecount\endcsname} \def\beamer@savemode{\expandafter\beamer@pushmode\expandafter{\beamer@mode}} \def\beamer@resumemode{\beamer@popmode} % % Stuff needed in both article and presentation version % \def\jobnamebeamerversion{}% \def\includeslide{\@ifnextchar[{\@includeslide}{\@includeslide[]}} \def\@includeslide[#1]#2{% \ifx\jobnamebeamerversion\@empty% \ClassError{beamer}{Invoke macro "setjobnamebeamerversion" first}{}% \else% \edef\beamer@args{[#1,page=\csname beamer@slide#2\endcsname]{\jobnamebeamerversion}} \expandafter\pgfimage\beamer@args% \fi} \def\setjobnamebeamerversion#1{% \def\jobnamebeamerversion{#1}% {\makeatletter \@input{\jobnamebeamerversion.snm}} } % % Check whether we should initiate transfer to another class (obsolete) % % Extract class name, if present \def\beamer@classname{} \def\beamer@classoptions{} \def\beamer@classnamename{class} \def\beamer@eq{=,} \def\beamer@findclassname#1=#2,#3!{ \def\beamer@temp{#1} \ifx\beamer@temp\beamer@classnamename \def\beamer@classname{#2} \beamer@stripsign#3! \fi} \def\beamer@stripsign#1!{% \def\beamer@temp{#1} \ifx\beamer@temp\beamer@eq % nothing to do \else \beamer@@stripsign#1! \fi } \def\beamer@@stripsign#1,=,!{ \def\beamer@classoptions{#1} } \def\beamer@transfer{% % Prepare... \def\beamer@slide##1##2{\expandafter\gdef\csname beamer@slide##1\endcsname{##2}} \beamer@inpresentationfalse \def\beamer@currentmode{article} \common \edef\beamer@classwhat{[\beamer@classoptions]{\beamer@classname}} \expandafter\LoadClass\beamer@classwhat \endinput } \expandafter\beamer@findclassname\@classoptionslist,=,! \ifx\beamer@classname\@empty \let\beamer@transferifnecessary=\relax \else % Need to transfer to another class soon \let\beamer@transferifnecessary=\beamer@transfer \fi \endinput %%% Local Variables: %%% mode: latex %%% TeX-master: ../examples/beamerexample1.tex %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbasenavigation.sty000664 000000 000000 00000057620 12732552614 027113 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbasenavigation.sty,v 1.29 2004/10/07 20:17:57 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode % % Navigation buttons % % The following commands are called by the .nav file. \def\beamer@framepages#1#2{% \ifnum\c@page<#1% \else% \ifnum\c@page>#2% \else% \gdef\beamer@startpageofframe{#1}% \gdef\beamer@endpageofframe{#2}% \fi% \fi% } \def\beamer@subsectionpages#1#2{% \ifnum\c@page<#1% \else% \ifnum\c@page>#2% \else% \gdef\beamer@startpageofsubsection{#1}% \gdef\beamer@endpageofsubsection{#2}% \fi% \fi% } \def\beamer@sectionpages#1#2{% \ifnum\c@page<#1% \else% \ifnum\c@page>#2% \else% \gdef\beamer@startpageofsection{#1}% \gdef\beamer@endpageofsection{#2}% \fi% \fi% } \def\beamer@partpages#1#2{% \ifnum\c@page<#1% \else% \ifnum\c@page>#2% \else% \gdef\beamer@startpageofpart{#1}% \gdef\beamer@endpageofpart{#2}% \fi% \fi% } \def\beamer@nextpage#1{% \beamer@tempcount=#1% \advance\beamer@tempcount by1\relax% \ifnum\beamer@tempcount>\beamer@endpageofdocument% \beamer@tempcount=\beamer@endpageofdocument% \fi} \def\beamer@prevpage#1{% \beamer@tempcount=#1\relax% \ifnum\beamer@tempcount>1% \advance\beamer@tempcount by-1% \fi% } \def\hyperlinkslideprev{% \beamer@prevpage\c@page% \hyperlink{Navigation\the\beamer@tempcount}} \def\hyperlinkslidenext{% \beamer@nextpage\c@page% \hyperlink{Navigation\the\beamer@tempcount}} \def\hyperlinkframestart{\hyperlink{Navigation\beamer@startpageofframe}} \def\hyperlinkframeend{\hyperlink{Navigation\beamer@endpageofframe}} \def\hyperlinkframestartnext{% \beamer@nextpage\beamer@endpageofframe% \hyperlink{Navigation\the\beamer@tempcount}} \def\hyperlinkframeendprev{% \beamer@prevpage\beamer@startpageofframe% \hyperlink{Navigation\the\beamer@tempcount}} \def\hyperlinksubsectionstart{\hyperlink{Navigation\beamer@startpageofsubsection}} \def\hyperlinksubsectionend{\hyperlink{Navigation\beamer@endpageofsubsection}} \def\hyperlinksubsectionstartnext{% \beamer@nextpage\beamer@endpageofsubsection% \hyperlink{Navigation\the\beamer@tempcount}} \def\hyperlinksubsectionendprev{% \beamer@prevpage\beamer@startpageofsubsection% \hyperlink{Navigation\the\beamer@tempcount}} \def\hyperlinksectionstart{\hyperlink{Navigation\beamer@startpageofsection}} \def\hyperlinksectionend{\hyperlink{Navigation\beamer@endpageofsection}} \def\hyperlinksectionstartnext{% \beamer@nextpage\beamer@endpageofsection% \hyperlink{Navigation\the\beamer@tempcount}} \def\hyperlinksectionendprev{% \beamer@prevpage\beamer@startpageofsection% \hyperlink{Navigation\the\beamer@tempcount}} \def\hyperlinkpartstart{\hyperlink{Navigation\beamer@startpageofpart}} \def\hyperlinkpartend{\hyperlink{Navigation\beamer@endpageofpart}} \def\hyperlinkpartstartnext{% \beamer@nextpage\beamer@endpageofpart% \hyperlink{Navigation\the\beamer@tempcount}} \def\hyperlinkpartendprev{% \beamer@prevpage\beamer@startpageofpart% \hyperlink{Navigation\the\beamer@tempcount}} \def\hyperlinkpresentationstart{\hyperlink{Navigation1}} \def\hyperlinkpresentationend{% \ifx\beamer@startpageofappendix\@empty% \beamer@tempcount=\beamer@endpageofdocument% \else% \beamer@prevpage\beamer@startpageofappendix% \fi% \hyperlink{Navigation\the\beamer@tempcount}} \def\hyperlinkappendixstart{% \ifx\beamer@startpageofappendix\@empty% \beamer@tempcount=\beamer@endpageofdocument% \else% \beamer@tempcount=\beamer@startpageofappendix% \fi% \hyperlink{Navigation\the\beamer@tempcount}} \def\hyperlinkappendixend{\hyperlink{Navigation\beamer@endpageofdocument}} \def\hyperlinkdocumentstart{\hyperlink{Navigation1}} \def\hyperlinkdocumentend{\hyperlink{Navigation\beamer@endpageofdocument}} \mode
    { \newcommand<>\hyperlinkslideprev[1]{} \newcommand<>\hyperlinkslidenext[1]{} \newcommand<>\hyperlinkframestart[1]{} \newcommand<>\hyperlinkframeend[1]{} \newcommand<>\hyperlinkframestartnext[1]{} \newcommand<>\hyperlinkframeendprev[1]{} \newcommand<>\hyperlinksubsectionstart[1]{} \newcommand<>\hyperlinksubsectionend[1]{} \newcommand<>\hyperlinksubsectionstartnext[1]{} \newcommand<>\hyperlinksubsectionendprev[1]{} \newcommand<>\hyperlinksectionstart[1]{} \newcommand<>\hyperlinksectionend[1]{} \newcommand<>\hyperlinksectionstartnext[1]{} \newcommand<>\hyperlinksectionendprev[1]{} \newcommand<>\hyperlinkpartstart[1]{} \newcommand<>\hyperlinkpartend[1]{} \newcommand<>\hyperlinkpartstartnext[1]{} \newcommand<>\hyperlinkpartendprev[1]{} \newcommand<>\hyperlinkpresentationstart[1]{} \newcommand<>\hyperlinkpresentationend[1]{} \newcommand<>\hyperlinkappendixstart[1]{} \newcommand<>\hyperlinkappendixend[1]{} \newcommand<>\hyperlinkdocumentstart[1]{} \newcommand<>\hyperlinkdocumentend[1]{} } \newcommand\insertframestartpage{\beamer@startpageofframe} \newcommand\insertframeendpage{\beamer@endpageofframe} \newcommand\insertsubsectionstartpage{\beamer@startpageofsubsection} \newcommand\insertsubsectionendpage{\beamer@endpageofsubsection} \newcommand\insertsectionstartpage{\beamer@startpageofsection} \newcommand\insertsectionendpage{\beamer@endpageofsection} \newcommand\insertpartstartpage{\beamer@startpageofpart} \newcommand\insertpartendpage{\beamer@endpageofpart} \newcommand\insertpresentationstartpage{1} \newcommand\insertpresentationendpage{{% \ifx\beamer@startpageofappendix\@empty% \beamer@tempcount=\beamer@endpageofdocument\relax% \else% \beamer@prevpage\beamer@startpageofappendix\relax% \fi% \the\beamer@tempcount}} \newcommand\insertappendixstartpage{{% \ifx\beamer@startpageofappendix\@empty% \beamer@tempcount=\beamer@endpageofdocument\relax% \else% \beamer@tempcount=\beamer@startpageofappendix\relax% \fi% \the\beamer@tempcount}} \newcommand\insertappendixendpage{\beamer@endpageofdocument} \newcommand\insertdocumentstartpage{1} \newcommand\insertdocumentendpage{\beamer@endpageofdocument} % % Navigation Button Art % \def\beamer@linkspace#1{\vbox to7.5pt{}\kern#1} \pgfdefobject{beamerslidenavlight}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{20pt}{5pt}} {\pgfqmoveto{4}{0.5} \pgfqlineto{2}{2} \pgfqlineto{4}{3.5} \pgffill \pgfqmoveto{16}{0.5} \pgfqlineto{18}{2} \pgfqlineto{16}{3.5} \pgffill} \pgfdefobject{beamerslidenavstrong}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{20pt}{5pt}} {\pgfrect[stroke]{\pgfpoint{8.3pt}{0.8pt}}{\pgfpoint{3.4pt}{2.4pt}}} \def\insertslidenavigationsymbol{% \begin{pgfpicture}{0pt}{-1.5pt}{20pt}{5.5pt} \pgfuseobject{beamerslidenavstrong}% \usebeamercolor[fg]{navigation symbols dimmed} \pgfuseobject{beamerslidenavlight}% \end{pgfpicture}\kern-20pt% \hyperlinkslideprev{\beamer@linkspace{6pt}}% \Acrobatmenu{GoToPage}{\beamer@linkspace{8pt}}% \hyperlinkslidenext{\beamer@linkspace{6pt}}} \pgfdefobject{beamerframenavlight}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{20pt}{5pt}} {\pgfqmoveto{4}{0.5} \pgfqlineto{2}{2} \pgfqlineto{4}{3.5} \pgffill \pgfqmoveto{16}{0.5} \pgfqlineto{18}{2} \pgfqlineto{16}{3.5} \pgffill} \pgfdefobject{beamerframenavstrong}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{20pt}{5pt}} {\pgfrect[stroke]{\pgfpoint{7pt}{0pt}}{\pgfpoint{3.4pt}{2.4pt}} \pgfqmoveto{7.8}{2.4} \pgfqlineto{7.8}{3.2} \pgfqlineto{11.2}{3.2} \pgfqlineto{11.2}{.8} \pgfqlineto{10.4}{.8} \pgfstroke \pgfqmoveto{8.6}{3.2} \pgfqlineto{8.6}{4} \pgfqlineto{12}{4} \pgfqlineto{12}{1.6} \pgfqlineto{11.2}{1.6} \pgfstroke} \def\insertframenavigationsymbol{% \begin{pgfpicture}{0pt}{-1.5pt}{20pt}{5.5pt} \pgfuseobject{beamerframenavstrong}% \usebeamercolor[fg]{navigation symbols dimmed} \pgfuseobject{beamerframenavlight}% \end{pgfpicture}\kern-20pt% \hyperlinkframeendprev{\beamer@linkspace{5pt}}% \hyperlinkframestart{\beamer@linkspace{5pt}}% \hyperlinkframeend{\beamer@linkspace{5pt}}% \hyperlinkframestartnext{\beamer@linkspace{5pt}}} \pgfdefobject{beamersubsectionnavlight}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{20pt}{5pt}} {\pgfqmoveto{4}{0.5} \pgfqlineto{2}{2} \pgfqlineto{4}{3.5} \pgffill \pgfqmoveto{16}{0.5} \pgfqlineto{18}{2} \pgfqlineto{16}{3.5} \pgffill \pgfsetlinewidth{0.6pt} \pgfqmoveto{8}{4} \pgfqlineto{11}{4} \pgfstroke \pgfqmoveto{9}{2} \pgfqlineto{12}{2} \pgfstroke \pgfqmoveto{8}{1} \pgfqlineto{11}{1} \pgfstroke \pgfqmoveto{9}{0} \pgfqlineto{12}{0} \pgfstroke} \pgfdefobject{beamersubsectionnavstrong}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{20pt}{5pt}} {\pgfsetlinewidth{0.6pt} \pgfqmoveto{9}{3} \pgfqlineto{12}{3} \pgfstroke} \def\insertsubsectionnavigationsymbol{% \begin{pgfpicture}{0pt}{-1.5pt}{20pt}{5.5pt} \pgfuseobject{beamersubsectionnavstrong}% \usebeamercolor[fg]{navigation symbols dimmed} \pgfuseobject{beamersubsectionnavlight}% \end{pgfpicture}\kern-20pt% \hyperlinksubsectionendprev{\beamer@linkspace{5pt}}% \hyperlinksubsectionstart{\beamer@linkspace{5pt}}% \hyperlinksubsectionend{\beamer@linkspace{5pt}}% \hyperlinksubsectionstartnext{\beamer@linkspace{5pt}}} \pgfdefobject{beamersectionnavlight}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{20pt}{5pt}} {\pgfqmoveto{4}{0.5} \pgfqlineto{2}{2} \pgfqlineto{4}{3.5} \pgffill \pgfqmoveto{16}{0.5} \pgfqlineto{18}{2} \pgfqlineto{16}{3.5} \pgffill \pgfsetlinewidth{0.6pt} \pgfqmoveto{8}{1} \pgfqlineto{11}{1} \pgfstroke \pgfqmoveto{9}{0} \pgfqlineto{12}{0} \pgfstroke} \pgfdefobject{beamersectionnavstrong}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{20pt}{5pt}} {\pgfsetlinewidth{0.6pt} \pgfqmoveto{8}{4} \pgfqlineto{11}{4} \pgfstroke \pgfqmoveto{9}{3} \pgfqlineto{12}{3} \pgfstroke \pgfqmoveto{9}{2} \pgfqlineto{12}{2} \pgfstroke } \def\insertsectionnavigationsymbol{% \begin{pgfpicture}{0pt}{-1.5pt}{20pt}{5.5pt} \pgfuseobject{beamersectionnavstrong}% \usebeamercolor[fg]{navigation symbols dimmed} \pgfuseobject{beamersectionnavlight}% \end{pgfpicture}\kern-20pt% \hyperlinksectionendprev{\beamer@linkspace{5pt}}% \hyperlinksectionstart{\beamer@linkspace{5pt}}% \hyperlinksectionend{\beamer@linkspace{5pt}}% \hyperlinksectionstartnext{\beamer@linkspace{5pt}}} \pgfdefobject{beamerdocnavlight}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{20pt}{5pt}} {\pgfqmoveto{10}{-.5} \pgfqlineto{10}{4.5} \pgfstroke } \pgfdefobject{beamerdocnavstrong}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{20pt}{5pt}} { \pgfsetlinewidth{0.6pt} \pgfqmoveto{4}{4} \pgfqlineto{7}{4} \pgfstroke \pgfqmoveto{5}{3} \pgfqlineto{8}{3} \pgfstroke \pgfqmoveto{5}{2} \pgfqlineto{8}{2} \pgfstroke \pgfqmoveto{3}{1} \pgfqlineto{7}{1} \pgfstroke \pgfqmoveto{5}{0} \pgfqlineto{8}{0} \pgfstroke \pgfqmoveto{12}{3} \pgfqlineto{15}{3} \pgfstroke \pgfqmoveto{13}{2} \pgfqlineto{16}{2} \pgfstroke \pgfqmoveto{13}{1} \pgfqlineto{16}{1} \pgfstroke } \pgfdefobject{beamerdocnavstrongsingle}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{20pt}{5pt}} {\pgfsetlinewidth{0.6pt} \pgfqmoveto{8}{4} \pgfqlineto{11}{4} \pgfstroke \pgfqmoveto{9}{3} \pgfqlineto{12}{3} \pgfstroke \pgfqmoveto{9}{2} \pgfqlineto{12}{2} \pgfstroke \pgfqmoveto{7}{1} \pgfqlineto{11}{1} \pgfstroke \pgfqmoveto{9}{0} \pgfqlineto{12}{0} \pgfstroke} \def\insertdocnavigationsymbol{% \ifx\beamer@startpageofappendix\@empty% \begin{pgfpicture}{0pt}{-1.5pt}{20pt}{5.5pt} \pgfuseobject{beamerdocnavstrongsingle}% \end{pgfpicture}\kern-20pt% \hyperlinkpresentationstart{\beamer@linkspace{9pt}}% \hyperlinkpresentationend{\beamer@linkspace{11pt}}% \else% \begin{pgfpicture}{0pt}{-1.5pt}{20pt}{5.5pt} \pgfuseobject{beamerdocnavstrong}% \usebeamercolor[fg]{navigation symbols dimmed} \pgfuseobject{beamerdocnavlight}% \end{pgfpicture}\kern-20pt% \hyperlinkpresentationstart{\beamer@linkspace{5pt}}% \hyperlinkpresentationend{\beamer@linkspace{5pt}}% \hyperlinkappendixstart{\beamer@linkspace{3.5pt}}% \hyperlinkappendixend{\beamer@linkspace{6.5pt}}% \fi} \pgfdefobject{beamerbackfindforwardnav}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{20pt}{5pt}} { % search symbol \pgfsetlinewidth{0.6pt} \pgfqmoveto{10.4}{1.6} \pgfqlineto{12}{0} \pgfstroke \pgfsetlinewidth{0.4pt} \pgfcircle[stroke]{\pgfpoint{9.5pt}{2.5pt}}{1.2pt} % left arrow \pgfsetroundcap \pgfqmoveto{4}{0} \pgfqcurveto{5.1}{0}{6}{0.9}{6}{2} \pgfqcurveto{6}{3.1}{5.1}{4}{4}{4} \pgfqcurveto{2.9}{4}{2}{3.1}{2}{2} \pgfstroke \pgfqmoveto{3.2}{2.6} \pgfqlineto{2}{1.6} \pgfqlineto{0.8}{2.6} \pgfstroke % right arrow \pgfqmoveto{16}{0} \pgfqcurveto{14.9}{0}{14}{0.9}{14}{2} \pgfqcurveto{14}{3.1}{14.9}{4}{16}{4} \pgfqcurveto{17.1}{4}{18}{3.1}{18}{2} \pgfstroke \pgfqmoveto{19.2}{2.6} \pgfqlineto{18}{1.6} \pgfqlineto{16.8}{2.6} \pgfstroke } \def\insertbackfindforwardnavigationsymbol{% \begin{pgfpicture}{0pt}{-1.5pt}{20pt}{5.5pt} \pgfuseobject{beamerbackfindforwardnav}% \end{pgfpicture}\kern-20pt% \Acrobatmenu{GoBack}{\beamer@linkspace{7pt}}% \Acrobatmenu{Find}{\beamer@linkspace{6pt}}% \Acrobatmenu{GoForward}{\beamer@linkspace{7pt}}} % % User Buttons % \pgfdefobject{beamergotosymbol}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{5pt}{5pt}} { \pgfqmoveto{1.5}{0.5} \pgfqlineto{3.5}{2} \pgfqlineto{1.5}{3.5} \pgffill } \def\insertgotosymbol{% \begin{pgfpicture}{1pt}{0pt}{6pt}{5pt} \pgfuseobject{beamergotosymbol}% \end{pgfpicture}} \pgfdefobject{beamerskipsymbol}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{7pt}{5pt}} { \pgfqmoveto{1.5}{0.5} \pgfqlineto{3.5}{2} \pgfqlineto{1.5}{3.5} \pgfqmoveto{3.5}{0.5} \pgfqlineto{5.5}{2} \pgfqlineto{3.5}{3.5} \pgffill } \def\insertskipsymbol{% \begin{pgfpicture}{1pt}{0pt}{8pt}{5pt} \pgfuseobject{beamerskipsymbol}% \end{pgfpicture}} \pgfdefobject{beamerreturnsymbol}{\pgfpoint{0pt}{-1pt}}{\pgfpoint{5pt}{5pt}} { \pgfqmoveto{3.5}{0.5} \pgfqlineto{1.5}{2} \pgfqlineto{3.5}{3.5} \pgffill } \def\insertreturnsymbol{% \begin{pgfpicture}{1pt}{0pt}{6pt}{5pt} \pgfuseobject{beamerreturnsymbol}% \end{pgfpicture}} \def\beamerbutton#1{\def\insertbuttontext{#1}\usebeamertemplate**{button}} \def\beamergotobutton#1{\beamerbutton{\insertgotosymbol#1}} \def\beamerskipbutton#1{\beamerbutton{\insertskipsymbol#1}} \def\beamerreturnbutton#1{\beamerbutton{\insertreturnsymbol#1}} \mode
    { \let\beamerbutton=\@firstofone \let\beamergotobutton=\beamerbutton \let\beamerskipbutton=\beamerbutton \let\beamerreturnbutton=\beamerbutton } % % Inserting navigation bars % \def\insertnavigation#1{% \vbox{{% \usebeamerfont{section in head/foot}\usebeamercolor[fg]{section in head/foot}% \beamer@xpos=0\relax% \beamer@ypos=1\relax% \hbox to #1{\hskip.3cm\setbox\beamer@sectionbox=\hbox{\kern1sp}% \ht\beamer@sectionbox=1.875ex% \dp\beamer@sectionbox=0.75ex% \hskip-1.875ex plus-1fill\dohead% \box\beamer@sectionbox\hfil\hskip.3cm}% }}} \def\sectionentry#1#2#3#4#5{% section number, section title, page \ifnum#5=\c@part% \box\beamer@sectionbox\hskip1.875ex plus 1fill% \beamer@xpos=0\relax% \beamer@ypos=1\relax% \setbox\beamer@sectionbox= \hbox{\def\insertsectionhead{#2}% \def\insertsectionheadnumber{#1}% \def\insertpartheadnumber{#5}% {% \usebeamerfont{section in head/foot}\usebeamercolor[fg]{section in head/foot}% \ifnum\c@section=#1% \hyperlink{Navigation#3}{{\usebeamertemplate{section in head/foot}}}% \else% \hyperlink{Navigation#3}{{\usebeamertemplate{section in head/foot shaded}}}% \fi}% }% \ht\beamer@sectionbox=1.875ex% \dp\beamer@sectionbox=0.75ex% \fi\ignorespaces} \def\beamer@nav@subsectionstyle#1{\beamer@toc@sprocess\beamer@nav@css\beamer@nav@oss\beamer@nav@ooss#1///} \beamer@nav@subsectionstyle{show} \def\insertverticalnavigation#1{% \vbox{% \def\sectionentry##1##2##3##4##5{% \ifnum##5=\c@part% \def\insertsectionhead{##2}% \def\insertsectionheadnumber{##1}% \def\insertpartheadnumber{##5}% \hbox{{% \usebeamerfont{section in sidebar}\usebeamercolor[fg]{section in sidebar}% \hyperlink{Navigation##3}{% \ifnum\c@section=##1% \ifnum\c@subsection=0\relax% {\usebeamertemplate{section in sidebar}}% \else% \ifx\beamer@nav@css\beamer@hidetext% {\usebeamertemplate{section in sidebar}}% \else% {\usebeamertemplate{section in sidebar shaded}}% \fi% \fi% \else {\usebeamertemplate{section in sidebar shaded}}% \fi}}}% \beamer@currentsubsection=0\relax\fi}% \def\slideentry##1##2##3##4##5##6{% \ifnum##6=\c@part% \ifnum##2>\beamer@currentsubsection% \beamer@currentsubsection=##2% \def\insertsubsectionhead{##5}% \def\insertsectionheadnumber{##1}% \def\insertsubsectionheadnumber{##2}% \def\insertpartheadnumber{##6}% \beamer@tocifnothide{\ifnum\c@section=##1\ifnum\c@subsection=##2\beamer@nav@css\else\beamer@nav@oss\fi\else\beamer@nav@ooss\fi}% {\hbox{{% \usebeamerfont{subsection in sidebar}\usebeamercolor[fg]{subsection in sidebar}% \beamer@link(##4){% \ifnum\c@section=##1% \ifnum\c@subsection=##2% {\usebeamertemplate{subsection in sidebar}}% \else% {\usebeamertemplate{subsection in sidebar shaded}}% \fi% \else% {\usebeamertemplate{subsection in sidebar shaded}}% \fi}}}% }% \fi\fi}% \beamer@currentsubsection=0\relax% \dohead% }} \def\slideentry#1#2#3#4#5#6{% %section number, subsection number, slide number, first/last frame, page number, part number \ifnum#6=\c@part\ifnum#2>0\ifnum#3>0% \ifbeamer@compress% \advance\beamer@xpos by1\relax% \else% \beamer@xpos=#3\relax% \beamer@ypos=#2\relax% \fi% \hbox to 0pt{% \beamer@tempdim=-\beamer@vboxoffset% \advance\beamer@tempdim by-\beamer@boxsize% \multiply\beamer@tempdim by\beamer@ypos% \advance\beamer@tempdim by -.05cm% \raise\beamer@tempdim\hbox{% \beamer@tempdim=\beamer@boxsize% \multiply\beamer@tempdim by\beamer@xpos% \advance\beamer@tempdim by -\beamer@boxsize% \advance\beamer@tempdim by 1pt% \kern\beamer@tempdim\hbox{\beamer@link(#4){% \usebeamerfont{mini frame}% \ifnum\c@section=#1% \ifnum\c@subsection=#2% \usebeamercolor[fg]{mini frame}% \ifnum\c@subsectionslide=#3% \usebeamertemplate{mini frame}%\beamer@minislidehilight% \else% \usebeamertemplate{mini frame in current subsection}%\beamer@minisliderowhilight% \fi% \else% \usebeamercolor{mini frame}% %\color{fg!50!bg}% \usebeamertemplate{mini frame in other subsection}%\beamer@minislide% \fi% \else% \usebeamercolor{mini frame}% %\color{fg!50!bg}% \usebeamertemplate{mini frame in other subsection}%\beamer@minislide% \fi% }}}\hskip-10cm plus 1fil% }\fi\fi% \else% \fakeslideentry{#1}{#2}{#3}{#4}{#5}{#6}% \fi\ignorespaces} \def\fakeslideentry#1#2#3#4#5#6{% \ifnum#2>0\ifnum#3>0% \ifbeamer@compress% \advance\beamer@xpos by1\relax% \else% \beamer@xpos=#3\relax% \beamer@ypos=#2\relax% \fi% \hbox to 0pt{\beamer@tempdim=-\beamer@vboxoffset% \advance\beamer@tempdim by -\beamer@boxsize% \multiply\beamer@tempdim by\beamer@ypos% \advance\beamer@tempdim by -.05cm% \raise\beamer@tempdim\hbox{}}\fi\fi\ignorespaces} \def\beamer@link(#1/#2){% \def\beamer@goto{{Navigation#1}}% default: first slide of frame \ifnum\c@page<#2% \ifnum\c@page<#1\else% go to last slide of frame, on all slides of % the frame, except for the last one \def\beamer@goto{{Navigation#2}}% jump to last slide of frame \fi\fi% \expandafter\hyperlink\beamer@goto} \define@key{beamer@margin}{mini frame size}{\beamer@boxsize=#1} \define@key{beamer@margin}{mini frame offset}{\beamer@vboxoffset=#1} \def\insertsectionnavigation#1{% \hbox to #1{% \vbox{{\usebeamerfont{section in head/foot}\usebeamercolor[fg]{section in head/foot}% \vskip0.5625ex% \def\slideentry##1##2##3##4##5##6{}% \def\sectionentry##1##2##3##4##5{% \ifnum##5=\c@part% \def\insertsectionhead{##2}% \def\insertsectionheadnumber{##1}% \def\insertpartheadnumber{##5}% \setbox\beamer@tempbox=\hbox{% \hyperlink{Navigation##3}{\hbox to #1{% \hskip0.3cm% \ifnum\c@section=##1% {\usebeamertemplate{section in head/foot}}% \else% {\usebeamertemplate{section in head/foot shaded}}% \fi\hskip0.3cm}}}% \ht\beamer@tempbox=1.6875ex\dp\beamer@tempbox=0.75ex% \box\beamer@tempbox\fi}% \dohead\vskip0.5625ex}}\hfil}} \def\insertsectionnavigationhorizontal#1#2#3{% \hbox to #1{{% \def\slideentry##1##2##3##4##5##6{}% #2\hskip.3cm% \usebeamerfont{section in head/foot}\usebeamercolor[fg]{section in head/foot}% \setbox\beamer@sectionbox=\hbox{}% \ht\beamer@sectionbox=1.875ex% \dp\beamer@sectionbox=0.75ex% \hskip-1.875ex plus-1fill\dohead% \box\beamer@sectionbox\hfil\hskip.3cm% #3}}} \def\insertsubsectionnavigation#1{% \hbox to #1{% \vbox{{% \usebeamerfont{subsection in head/foot}\usebeamercolor[fg]{subsection in head/foot}% \vskip0.5625ex% \beamer@currentsubsection=0% \def\sectionentry##1##2##3##4##5{}% \def\slideentry##1##2##3##4##5##6{\ifnum##6=\c@part\ifnum##1=\c@section% \ifnum##2>\beamer@currentsubsection% \beamer@currentsubsection=##2% \def\insertsubsectionhead{##5}% \def\insertsectionheadnumber{##1}% \def\insertsubsectionheadnumber{##2}% \def\insertpartheadnumber{##6}% \setbox\beamer@tempbox=\hbox{\beamer@link(##4){% \hbox to #1{\hskip0.3cm% \ifnum\c@subsection=##2% {\usebeamertemplate{subsection in head/foot}}% \else% {\usebeamertemplate{subsection in head/foot shaded}}% \fi\hfil\hskip0.3cm}}}% \ht\beamer@tempbox=1.6875ex\dp\beamer@tempbox=0.75ex% \box\beamer@tempbox\fi\fi\fi}% \dohead\vskip0.5625ex}\hfil}}} \def\insertsubsectionnavigationhorizontal#1#2#3{% \hbox to #1{{% \usebeamerfont{subsection in head/foot}\usebeamercolor[fg]{subsection in head/foot}% \beamer@currentsubsection=0% \def\sectionentry##1##2##3##4##5{}% \def\slideentry##1##2##3##4##5##6{\ifnum##6=\c@part\ifnum##1=\c@section% \ifnum##2>\beamer@currentsubsection% \beamer@currentsubsection=##2% \box\beamer@sectionbox\hskip1.875ex plus1fill% \setbox\beamer@sectionbox= \hbox{\def\insertsubsectionhead{##5}% \def\insertsectionheadnumber{##1}% \def\insertsubsectionheadnumber{##2}% \def\insertpartheadnumber{##6}% \ifnum\c@subsection=##2% \beamer@link(##4){{\usebeamertemplate{subsection in head/foot}}}\else% \beamer@link(##4){{\usebeamertemplate{subsection in head/foot shaded}}}\fi}% \ht\beamer@sectionbox=1.875ex% \dp\beamer@sectionbox=0.75ex% \fi\fi\fi\ignorespaces}% #2\hskip.3cm\setbox\beamer@sectionbox=\hbox{}% \hskip-1.875ex plus-1fill\dohead% \box\beamer@sectionbox\hfil\hskip.3cm% #3}}} % % Name slides % \def\beamer@nameslide#1{% \addtocontents{snm}{\protect\beamer@slide{#1}{\the\c@page}}% \ifvmode\nointerlineskip\vbox to0pt{\hypertarget{#1}{}}\else\hbox{\hypertarget{#1}{}}\fi} \def\beamer@slide#1#2{\expandafter\def\csname beamer@hyperlink#1\endcsname{% \hyperlink{Navigation#2}}} \def\beamer@dummynameslide{\ifvmode\nointerlineskip\vbox to0pt{}\else\hbox{}\fi} \mode %%% Local Variables: %%% mode: latex %%% TeX-master: ../examples/beamerexample1.tex %%% TeX-master: "~/texmf/tex/latex/beamer/examples/beamerexample1" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbasenotes.sty000664 000000 000000 00000010254 12732552614 026074 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbasenotes.sty,v 1.14 2004/10/08 14:02:33 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \newbox\beamer@frameboxcopy % % Notes % \define@key{beamernotes}{enumerate}[true]{% \def\beamer@noteenvstart{\begin{enumerate}\itemsep=0pt\parskip=0pt}% \def\beamer@noteenvend{\end{enumerate}}} \define@key{beamernotes}{itemize}[true]{% \def\beamer@noteenvstart{\begin{itemize}\itemsep=0pt\parskip=0pt}% \def\beamer@noteenvend{\end{itemize}}} \newcommand\beamer@outsideframenote[2][]{% \beamer@savemode% \ifbeamer@inlecture% \def\beamer@noteenvstart{}% \def\beamer@noteenvend{}% \setkeys{beamernotes}{#1}% \ifbeamer@notes \begingroup \setbeamertemplate{itemize item}{\textbullet} \setbeamertemplate{itemize subitem}{--} \setbeamertemplate{enumerate item}{\insertenumlabel.} \setbeamertemplate{enumerate subitem}{\insertenumlabel.\insertsubenumlabel} \def\@oddhead{} \def\@oddfoot{} \let\@evenhead\@oddhead \let\@evenfoot\@oddfoot \def\beamer@backgroundtemplate{}% \setbeamercolor{item}{fg=black,bg=white} \color{black}% \nointerlineskip \hbox{\hskip-\Gm@lmargin\hskip1cm\vbox to\textheight{% %pretend to have ``standard'' margins \edef\beamer@origlmargin{\Gm@lmargin}% \edef\beamer@origrmargin{\Gm@rmargin}% \def\Gm@lmargin{1cm}% \def\Gm@rmargin{1cm}% \textwidth=10.8cm% \hsize=\textwidth% \vskip-\headheight% \def\insertnote{\vbox{}% \beamer@noteenvstart#2\beamer@noteenvend% }% \usebeamertemplate*{note page}% \vfil% \vskip-4pt% foot separator \vskip-\footheight}\hskip-\Gm@lmargin\hskip1cm}% \clearpage \endgroup \fi% \fi% \beamer@resumemode} % % Notes in frames % \def\beamer@itemtext{item} \newcommand<>{\beamer@inframenote}[2][]{% \ifbeamer@inlecture% \only#3{% \def\beamer@temp{#1}% \ifx\beamer@temp\beamer@itemtext% \expandafter\gdef\expandafter\beamer@noteitems% \expandafter{\beamer@noteitems\item#2}% \else \expandafter\gdef\expandafter\beamer@notes% \expandafter{\beamer@notes#2}% \fi% }% \fi% } \def\note{% \ifbeamer@inframe% \let\next=\beamer@inframenote% \else% \let\next=\beamer@outsideframenote% \fi% \next} \def\beamer@framenotesbegin{% at beginning of slide \gdef\beamer@noteitems{}% \gdef\beamer@notes{}% } \def\beamer@framenotesend {% at end of slide \global\setbox\beamer@frameboxcopy=\copy\beamer@framebox% \ifx\beamer@noteitems\@empty% \ifx\beamer@notes\@empty% % possibly suppress this slide \ifbeamer@frameswithnotesonly % suppress frame \global\setbox\beamer@framebox=\box\voidb@x% \fi% \else% \beamer@setupnote% \fi \else% \beamer@setupnote% \fi \ifbeamer@notesnormals% \else% \global\setbox\beamer@framebox=\box\voidb@x% \fi% } \def\beamer@setupnote{% \gdef\beamer@notesactions{% \beamer@outsideframenote{% \beamer@notes% \ifx\beamer@noteitems\@empty\else \begin{enumerate}\itemsep=0pt\parskip=0pt% \beamer@noteitems% \end{enumerate}% \fi }% \gdef\beamer@notesactions{}% } } \def\beamer@notesactions{} % % Note frame insert % \newcommand{\insertslideintonotes}[1]{{% \begin{pgfpicture}{0cm}{0cm}{#1\paperwidth}{#1\paperheight} \begin{pgfmagnify}{#1}{#1} \color[gray]{0.8} \pgfrect[fill]{\pgforigin}{\pgfpoint{\paperwidth}{\paperheight}} \color{black} \pgfputat{\pgfpoint{\beamer@origlmargin}{\footheight}}{\pgfbox[left,bottom]{\copy\beamer@frameboxcopy}} \end{pgfmagnify} \end{pgfpicture}% }} % % Note templates % % Default: \mode
    { \newcommand<>\note[2][]{} } \mode %%% Local Variables: %%% mode: latex %%% TeX-master: "~/texmf/tex/latex/beamer/examples/beamerexample1.tex" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbaseoptions.sty000664 000000 000000 00000003076 12732552614 026443 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbaseoptions.sty,v 1.6 2004/10/07 20:17:58 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \RequirePackage{keyval}[1997/11/10] \def\ProcessOptionsBeamer{% \let\@tempa\@empty \ifx\@currext\@clsextension% \else \@for\CurrentOption:=\@classoptionslist\do{% \@ifundefined{KV@\@currname @\CurrentOption}% {}{\edef\@tempa{\@tempa,\CurrentOption,}}}% \fi \edef\@tempa{% \noexpand\setkeys{\@currname}{\@tempa\@ptionlist{\@currname.\@currext}}}% \let\beamer@origkverr\KV@err% \ifx\@currext\@clsextension\let\KV@errx=\@gobble\fi% never mind \@tempa% \let\KV@err\beamer@origkverr% \AtEndOfPackage{\let\@unprocessedoptions\relax}} \def\ExecuteOptionsBeamer#1{% \setkeys{\@currname}{#1}} \def\DeclareOptionBeamer#1{\@ifnextchar[{\beamer@dokv{#1}}{\beamer@dokv{#1}[]}} \long\def\beamer@dokv#1[#2]#3{\define@key{\@currname}{#1}[#2]{#3}} \def\beamer@filterclassoptions{ \def\beamer@filteredclassoptionslist{} \@for\CurrentOption:=\@classoptionslist\do{% \ifx\CurrentOption\@empty\else \@expandtwoargs\in@{=}{\CurrentOption}% \ifin@ \else \edef\beamer@filteredclassoptionslist{% \beamer@filteredclassoptionslist,\CurrentOption} \fi \fi }% \let\@classoptionslist=\beamer@filteredclassoptionslist } %%% Local Variables: %%% mode: latex %%% TeX-master: "~/texmf/tex/latex/beamer/examples/beamerexample1.tex" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbaseoverlay.sty000664 000000 000000 00000064067 12732552614 026440 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbaseoverlay.sty,v 1.43 2004/10/07 20:17:58 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. % % % Basic overlay commands % % \long\def\beamer@ifnextcharospec#1#2{% \def\reserved@a{#1}% \def\reserved@b{#2}% \futurelet\@let@token\beamer@ifnch} \def\beamer@ifnch{% \ifx\@let@token<% \let\reserved@c\reserved@a% \else% \let\reserved@c\reserved@b% \fi% \reserved@c} % % \only % \def\only{\@ifnextchar<{\beamer@only}{\beamer@@only}} \long\def\beamer@only<#1>#2{% \def\beamer@doifnotinframe{}\def\beamer@doifinframe{#2}% {\beamer@masterdecode{#1}}\beamer@donow} \long\def\beamer@@only#1{\beamer@ifnextcharospec{\beamer@@@only{#1}}{#1}} \long\def\beamer@@@only#1<#2>{% \def\beamer@doifnotinframe{}\def\beamer@doifinframe{#1}% {\beamer@masterdecode{#2}}\beamer@donow} % % \alt and \altenv % \def\alt{\@ifnextchar<{\beamer@alt}{\beamer@alttwo}} \long\def\beamer@alttwo#1#2{\beamer@ifnextcharospec{\beamer@altget{#1}{#2}}{#1}} \long\def\beamer@altget#1#2<#3>{% \def\beamer@doifnotinframe{#2}\def\beamer@doifinframe{#1}% {\beamer@masterdecode{#3}}\beamer@donow} \long\def\beamer@alt<#1>#2#3{% \def\beamer@doifnotinframe{#3}\def\beamer@doifinframe{#2}% {\beamer@masterdecode{#1}}\beamer@donow} \def\altenv{\@ifnextchar<{\beamer@altenv}{\beamer@@@altenv}} \def\beamer@altenv<#1>{\beamer@@altenv{<#1>}} \long\def\beamer@@@altenv#1#2#3#4{\beamer@ifnextcharospec{\beamer@altenvsort{#1}{#2}{#3}{#4}}{\beamer@@altenv{}{#1}{#2}{#3}{#4}}} \long\def\beamer@altenvsort#1#2#3#4<#5>{\beamer@@altenv{<#5>}{#1}{#2}{#3}{#4}} \long\def\beamer@@altenv#1#2#3#4#5{\alt#1{\long\def\beamer@eoenv{#3}#2}{\long\def\beamer@eoenv{#5}#4}} \def\endaltenv{\beamer@eoenv} % % \action and actionenv % \def\beamer@plus{+} \def\action{\@ifnextchar<{\beamer@parsedaction}{\expandafter\beamer@parsedaction\beamer@defaultospec}} \long\def\beamer@parsedaction<#1>#2{% \def\beamer@doifnotinframe{}\def\beamer@doifinframe{}% {{\beamer@masterdecode{#1}}}% \ifx\beamer@decodefound\beamer@plus% \long\def\beamer@todo{#2}% \else% \expandafter\long\expandafter\def\expandafter\beamer@todo% \expandafter{\expandafter\uncover\expandafter<\expandafter a\expandafter l\expandafter l\expandafter:\beamer@decodefound>{#2}}% \fi% \expandafter\beamer@processactions\beamer@decaction{}% \beamer@todo} \def\beamer@processactions#1{% \beamer@ifempty{#1}{}{% \expandafter\beamer@@processactions\expandafter{\beamer@todo}#1}} \long\def\beamer@@processactions#1#2<#3>{% \expandafter\long\expandafter\def\expandafter\beamer@todo\expandafter{% \csname#2\endcsname{#1}}% \beamer@processactions} \def\actionenv{\beamer@ifnextcharospec{\beamer@parsedactionenv}{\expandafter\beamer@parsedactionenv\beamer@defaultospec}} \def\beamer@parsedactionenv<#1>{% \def\beamer@doifnotinframe{}\def\beamer@doifinframe{}% {{\beamer@masterdecode{#1}}}% \ifx\beamer@decodefound\beamer@plus% \def\beamer@todobegin{}% \def\beamer@todoend{}% \else% \edef\beamer@todobegin{\noexpand\begin{uncoverenv}}% \def\beamer@todoend{\end{uncoverenv}}% \fi% \expandafter\beamer@processactionsbegin\beamer@decaction{}% \expandafter\beamer@processactionsend\beamer@decaction{}% \beamer@todobegin} \def\endactionenv{\beamer@todoend} \def\beamer@processactionsbegin#1{% \beamer@ifempty{#1}{}{% \expandafter\beamer@@processactionsbegin\expandafter{\beamer@todobegin}#1}} \long\def\beamer@@processactionsbegin#1#2<#3>{% \def\beamer@todobegin{\begin{#2env}#1}% \beamer@processactionsbegin} \def\beamer@processactionsend#1{% \beamer@ifempty{#1}{}{% \expandafter\beamer@@processactionsend\expandafter{\beamer@todoend}#1}} \long\def\beamer@@processactionsend#1#2<#3>{% \def\beamer@todoend{#1\end{#2env}}% \beamer@processactionsend} \def\beamer@defaultospec{<*>} \def\beamer@emptyospec{<*>} % % \temporal % \long\def\temporal<#1>#2#3#4{% past, present, future \def\beamer@doifnotinframe{\beamer@picked}\def\beamer@doifinframe{#3}% {\beamer@masterdecode{#1}% \ifbeamer@localanotherslide\gdef\beamer@picked{#2}\else\gdef\beamer@picked{#4}\fi}\beamer@donow} % % \newoverlaycommand % \def\beameroriginal#1{\csname @orig\string#1\endcsname} \newcount\beamer@argscount % % newenvironment extension % \let\beamer@orignewenvironment=\newenvironment \def\newenvironment{\@ifnextchar<{\beamer@newenv}{\beamer@orignewenvironment}} \def\beamer@newenv<>{\@star@or@long\beamer@new@environment} \def\beamer@new@environment#1{\@ifnextchar[{\beamer@@newenv{#1}}{\beamer@newenvnoopt{#1}{0}}} \def\beamer@@newenv#1[#2]{\@ifnextchar[{\beamer@newenvopt{#1}{#2}}{\beamer@newenvnoopt{#1}{#2}}} \long\def\beamer@newenvnoopt#1#2#3#4{% \expandafter\newcommand\expandafter<\expandafter>\csname#1\endcsname[#2]{#3}% \expandafter\long\expandafter\def\csname end#1\endcsname{#4}% } \long\def\beamer@newenvopt#1#2[#3]#4#5{% \expandafter\newcommand\expandafter<\expandafter>\csname#1\endcsname[#2][#3]{#4}% \expandafter\long\expandafter\def\csname end#1\endcsname{#5}% } \let\beamer@origrenewenvironment=\renewenvironment \def\renewenvironment{\@ifnextchar<{\beamer@renewenv}{\beamer@origrenewenvironment}} \def\beamer@renewenv<>#1{% \edef\beamer@do{\csname original#1\endcsname=\expandafter\noexpand\csname#1\endcsname} \expandafter\let\beamer@do% \edef\beamer@do{\csname endoriginal#1\endcsname=\expandafter\noexpand\csname end#1\endcsname} \expandafter\let\beamer@do% \newenvironment<>{#1}} % % newcommand extension % \let\beamer@orignewcommand=\newcommand \def\newcommand{\@ifnextchar<{\beamer@newcom}{\beamer@orignewcommand}} \def\beamer@newcom<>{\@star@or@long\beamer@new@command} \def\beamer@new@command#1{\@ifnextchar[{\beamer@@newcom{#1}}{\beamer@newcomnoopt{#1}{0}}} \def\beamer@@newcom#1[#2]{\@ifnextchar[{\beamer@newcomopt{#1}{#2}}{\beamer@newcomnoopt{#1}{#2}}} \long\def\beamer@newcomnoopt#1#2#3{% \ifnum#2=0\relax% \expandafter\def\expandafter#1\expandafter{\expandafter\beamer@sortzero\expandafter{\csname beamerx@\string#1\endcsname}}% \else \expandafter\def\expandafter#1\expandafter{\expandafter\beamer@sort\expandafter{\csname beamerx@\string#1\endcsname}{#2}}% \fi% \beamer@argscount=#2\relax% \advance\beamer@argscount by 1\relax% \expandafter\newcommand\csname beamerx@\string#1\endcsname[\beamer@argscount]{#3}% } \long\def\beamer@newcomopt#1#2[#3]#4{% \expandafter\def\expandafter#1\expandafter{\expandafter\beamer@presort\expandafter{\csname beamerx@\string#1\endcsname}{#2}{#3}}% \beamer@argscount=#2\relax% \advance\beamer@argscount by 1\relax% \expandafter\newcommand\csname beamerx@\string#1\endcsname[\beamer@argscount]{#4}% } \let\beamer@origrenewcommand=\renewcommand \def\renewcommand{\@ifnextchar<{\beamer@renewcom}{\beamer@origrenewcommand}} \def\beamer@renewcom<>#1{% \expandafter\def\expandafter\beamer@name\expandafter{\csname @orig\string#1\endcsname}% \expandafter\let\beamer@name=#1\relax% \newcommand<>#1} \long\def\beamer@presort#1#2#3{% \long\def\beamer@todo{#1}% \def\beamer@ospec{}% \beamer@argscount=#2\relax% \beamer@prechecka{#3}} \long\def\beamer@prechecka#1{\@ifnextchar<{\beamer@preget{#1}}{\beamer@precheckb{#1}}} \long\def\beamer@preget#1<#2>{\def\beamer@ospec{<#2>}\beamer@precheckb{#1}} \long\def\beamer@precheckb#1{\@ifnextchar[{\beamer@pregetb}{\beamer@pregetb[#1]}} \long\def\beamer@pregetb[#1]{% \expandafter\long\expandafter\def\expandafter\beamer@todo\expandafter{\beamer@todo{#1}}% \advance\beamer@argscount by-1\relax% \beamer@parseargs% } \def\beamer@sortzero#1{\beamer@ifnextcharospec{\beamer@sortzeroread{#1}}{#1{}}} \def\beamer@sortzeroread#1<#2>{#1{<#2>}} \def\beamer@sort#1#2{% \long\def\beamer@todo{#1}% \def\beamer@ospec{}% \beamer@argscount=#2\relax% \beamer@parseargs} \def\beamer@parseargs{% \ifnum\beamer@argscount=0% \let\next=\beamer@finalargscheck% \else% \let\next=\beamer@lookforarg% \fi% \next} \def\beamer@lookforarg{% \@ifnextchar<\beamer@foundspec\beamer@readarg} \def\beamer@foundspec<#1>{% \def\beamer@ospec{<#1>}% \beamer@lookforarg} \long\def\beamer@readarg#1{% \expandafter\long\expandafter\def\expandafter\beamer@todo\expandafter{\beamer@todo{#1}}% \advance\beamer@argscount by-1\relax% \beamer@parseargs% } \def\beamer@finalargscheck{\beamer@ifnextcharospec\beamer@finalspec\beamer@finalnospec} \def\beamer@finalspec<#1>{\def\beamer@ospec{<#1>}\beamer@finalnospec} \def\beamer@finalnospec{% \expandafter\beamer@todo\expandafter{\beamer@ospec}} \mode % commands for smuggling skips past \newskip\beamer@lastskipcover \def\beamer@smuggle#1{% \beamer@lastskipcover=\lastskip% \edef\beamer@lastskiptext{\the\lastskip}% \ifx\beamer@lastskiptext\beamer@zeropt\else% \ifvmode\unskip\fi\ifhmode\unskip\fi\fi% #1% \ifx\beamer@lastskiptext\beamer@zeropt\else% \ifvmode\vskip\beamer@lastskipcover\fi\ifhmode\hskip\beamer@lastskipcover\fi\fi% } % % Uncovering management % \def\beamer@actions#1#2{% \gdef\beamer@do{#1% \expandafter\gdef\csname beamer@doafter% \the\beamer@coveringdepth\endcsname{#2}}} \def\beamer@startcovered{% \beamer@smuggle{% \global\advance\beamer@coveringdepth by 1\relax% \beamer@actions{\pgfsys@begininvisible\aftergroup\beamer@@spacingcover}{% \pgfsys@endinvisible\aftergroup\beamer@@spacingcover% }% \def\opaqueness<##1>##2{% \only<##1>{% \beamer@actions{% \expandafter\xdef\csname beamer@oldcolorhook% \the\beamer@coveringdepth\endcsname{\beamer@colorhook}% \expandafter\xdef\csname beamer@oldpgfextension% \the\beamer@coveringdepth\endcsname{\beamer@pgfextension}% {\globalcolorstrue\colorlet{beamer@freeze\the\beamer@coveringdepth}{bg}}% \xdef\beamer@colorhook{!##2!beamer@freeze% \the\beamer@coveringdepth\beamer@colorhook}% \gdef\beamer@pgfextension{!##2opaque}% \color{.}% }% {% \xdef\beamer@colorhook{\csname beamer@oldcolorhook% \the\beamer@coveringdepth\endcsname}% \xdef\beamer@pgfextension{\csname beamer@oldpgfextension% \the\beamer@coveringdepth\endcsname}% \color{.}% }}}% \ifnum\beamer@slideinframe<\beamer@minimum%ok, at beginning {% \beamer@saveanother% \advance\beamer@minimum by-\beamer@slideinframe% \beamer@slideinframe=\beamer@minimum% \beamer@uncoverbeforeactions% \beamer@restoreanother% }% \else% {% \beamer@saveanother% \advance\beamer@slideinframe by-\beamer@minimum% \beamer@uncoverafteractions% \beamer@restoreanother% }% \fi% \beamer@do% }% } \def\beamer@endcovered{% \beamer@smuggle{% \csname beamer@doafter\the\beamer@coveringdepth\endcsname% \global\advance\beamer@coveringdepth by -1\relax% }% }% \define@key{beamer@mixin}{still covered}{\gdef\beamer@uncoverbeforeactions{\ignorespaces#1}} \define@key{beamer@mixin}{again covered}{\gdef\beamer@uncoverafteractions{\ignorespaces#1}} \define@key{beamer@mixin}{invisible}[]{% \gdef\beamer@uncoverbeforeactions{\ignorespaces} \gdef\beamer@uncoverafteractions{\ignorespaces}} \define@key{beamer@mixin}{transparent}[15]{% \gdef\beamer@uncoverbeforeactions{\ignorespaces\opaqueness<1->{#1}} \gdef\beamer@uncoverafteractions{\ignorespaces\opaqueness<1->{#1}}} \define@key{beamer@mixin}{dynamic}[]{% \gdef\beamer@uncoverbeforeactions{\ignorespaces\opaqueness<1-2>{10}\opaqueness<3->{5}} \gdef\beamer@uncoverafteractions{\ignorespaces\opaqueness<1-2>{10}\opaqueness<3->{5}}} \define@key{beamer@mixin}{highly dynamic}[]{% \gdef\beamer@uncoverbeforeactions{\ignorespaces\opaqueness<1>{15}\opaqueness<2>{10}\opaqueness<3>{5}\opaqueness<4->{2}} \gdef\beamer@uncoverafteractions{\ignorespaces\opaqueness<1>{15}\opaqueness<2>{10}\opaqueness<3>{5}\opaqueness<4->{2}}} \def\setbeamercovered#1{% \setkeys{beamer@mixin}{invisible}% \setkeys{beamer@mixin}{#1}} \setbeamercovered{invisible} \newcolormixin\beamer@colorhook \def\pgfalternateextension{\colorcurrentmixin\beamer@pgfextension} \def\beamer@colorhook{} \def\beamer@pgfextension{} \beamer@coveringdepth=0 \mode
    { \let\setbeamercovered=\@gobble } % % Pausing % \newenvironment{beamer@framepauses}%internal {% \global\c@beamerpauses=1\relax% \gdef\beamer@endpause{}% } {\beamer@endpause} \newcommand{\beamer@@pause}[1][]{% \beamer@ifempty{#1}% {\global\advance\c@beamerpauses by1\relax}% {\global\c@beamerpauses=#1\relax}% \onslide<\c@beamerpauses->\relax% } \mode { \AtBeginDocument { \let\beamer@musixpause=\pause \let\pause=\beamer@@pause \let\beamer@music=\music \def\music{\let\beamerpause=\pause\let\pause\beamer@musixpause\beamer@music} } } \mode { \def\onslide{\@ifstar{\only}{\@ifnextchar+{\expandafter\beamer@visibleonslide\@gobble}{\beamer@mainonslide}}} \newcommand<>{\beamer@visibleonslide}{% \@ifnextchar\bgroup {\visible#1}% {\beamer@noargsvisibleonslide#1}} \newcommand<>{\beamer@mainonslide}{% \@ifnextchar\bgroup% {\uncover#1}% {\beamer@noargsonslide#1}% } } \newcommand<>{\beamer@noargsonslide}{% \beamer@endpause% \alt#1% {\beamer@spacingcover\gdef\beamer@endpause{\beamer@spacingcover}}% {\beamer@startcovered\gdef\beamer@endpause{\beamer@endcovered}}% } \newcommand<>{\beamer@noargsvisibleonslide}{% \beamer@endpause% \alt#1% {\beamer@spacingcover\gdef\beamer@endpause{\beamer@spacingcover}}% {\beamer@begininvisible\gdef\beamer@endpause{\beamer@endinvisible}}% } \mode
    { \newcommand\beamer@@pause[1][]{} \newcommand<>{\beamer@noargsonslide}{} \newcommand<>{\beamer@noargsvisibleonslide}{} } % % Make item overlays % \let\beamer@origitem=\item \def\beamer@callorigitem{\@ifnextchar[\beamer@@callorigitem{\beamer@origitem\leavevmode\ignorespaces}} \def\beamer@@callorigitem[#1]{\beamer@origitem[#1]\leavevmode\ignorespaces} \def\item{% \ifhmode% \unskip\unskip\par% \fi% \beamer@closeitem\gdef\beamer@closeitem{}% \@ifnextchar<{\beamer@parseitem}{\beamer@itemcheckopt}} \def\beamer@itemcheckopt{\@ifnextchar[{\beamer@itemcheckopta}{% \ifx\beamer@defaultospec\beamer@emptyospec% \let\next=\beamer@callorigitem% \else% \let\next=\beamer@defaultparse% \fi% \next% }} \def\beamer@defaultparse{\expandafter\beamer@parseitem\beamer@defaultospec} \long\def\beamer@itemcheckopta[#1]{\@ifnextchar<{\beamer@itemreverse[#1]}{% \ifx\beamer@defaultospec\beamer@emptyospec% \let\next=\beamer@callorigitem% \else% \let\next=\beamer@defaultparse% \fi% \next[#1]}} \long\def\beamer@itemreverse[#1]<#2>{\beamer@parseitem<#2>[#1]} \def\beamer@parseitem<#1>{% \gdef\beamer@closeitem{\end{actionenv}}% \begin{actionenv}<#1>\beamer@callorigitem} \def\beamerdefaultoverlayspecification#1{% \beamer@ifempty{#1}% {% \def\beamer@gdefaultospec{<*>}% \def\beamer@defaultospec{<*>}}% {% \def\beamer@gdefaultospec{#1}% \def\beamer@defaultospec{#1}% }% } \beamerdefaultoverlayspecification{} \newcount\beamer@trivlistdepth \beamer@trivlistdepth=0 \let\beamer@orig@trivlist=\@trivlist \def\@trivlist{% \global\advance\beamer@trivlistdepth by1\relax% \expandafter\global\expandafter\let\csname beamer@closeitem\the\beamer@trivlistdepth\endcsname=\beamer@closeitem% \gdef\beamer@closeitem{}% \beamer@orig@trivlist% } \let\beamer@origendtrivlist=\endtrivlist \def\endtrivlist{% \beamer@closeitem% \expandafter\global\expandafter\let\expandafter\beamer@closeitem\expandafter=\csname beamer@closeitem\the\beamer@trivlistdepth\endcsname% \global\advance\beamer@trivlistdepth by-1\relax% \beamer@origendtrivlist} \def\beamer@closeitem{} \let\beamer@list=\list \let\beamer@@trivlist=\@trivlist \mode
    { \AtBeginDocument{% \let\beamer@origitem=\item \def\item{\@ifnextchar<\beamer@@item\beamer@item} \def\beamer@@item<#1>{\beamer@item} \def\beamer@item{\@ifnextchar[\beamer@@@item\beamer@origitem} \def\beamer@@@item[#1]{\@ifnextchar<{\beamer@@@@item[#1]}{\beamer@origitem[#1]}} \def\beamer@@@@item[#1]<#2>{\beamer@origitem[#1]} } } % % % Verbatim support % % \mode { \let\beamer@verb@egroup=\verb@egroup \def\beamer@setb{\setbox0=\copy} \long\def\defverb#1{% \expandafter\newbox\csname @verb\string#1\endcsname% \def#1{{\expandafter\beamer@setb\csname @verb\string#1\endcsname\unhbox0}}% \def\verb@egroup{\global\let\verb@balance@group\@empty\egroup\egroup\let\verb@egroup=\beamer@verb@egroup} \expandafter\setbox\csname @verb\string#1\endcsname=\hbox\bgroup \verb} \define@key{beamerverb}{colored}[true]{\def\beamer@colorsup{}} \define@key{beamerverb}{width}{\def\beamer@verbwidth{#1}} \newcommand{\defverbatim}[2][]{% \def\beamer@colorsup{\def\set@color{}\def\reset@color{}}% \setkeys{beamerverb}{width=\textwidth}% \setkeys{beamerverb}{#1}% \expandafter\newbox\csname @verb\string#2\endcsname% \def#2{{\expandafter\beamer@setb\csname @verb\string#2\endcsname% \unvbox0}\color{.}}% \expandafter\setbox\csname @verb\string#2\endcsname=\vbox\bgroup% \beamer@colorsup% \hsize=\beamer@verbwidth\textwidth=\beamer@verbwidth\linewidth=\beamer@verbwidth% \vskip-\baselineskip\strut\bgroup\aftergroup\beamer@verbend% \let\@next=} \def\beamer@verbend{\vskip-\baselineskip\strut\egroup} } % % Overlay commands % \mode { \newcommand\beamer@gobbleoptional[2][]{} \newcommand\beamer@gobbleoptionalinsp[2][]{\ignorespaces} } \def\beamer@@spacingcover{\beamer@smuggle{\pgfsys@begininvisible\pgfsys@endinvisible}} \def\beamer@spacingcover{\beamer@@spacingcover\aftergroup\beamer@@spacingcover} \def\beamer@begininvisible{\beamer@smuggle{\pgfsys@begininvisible\aftergroup\beamer@@spacingcover}} \def\beamer@endinvisible{\beamer@smuggle{\pgfsys@endinvisible\aftergroup\beamer@@spacingcover}} \long\def\beamer@fakeinvisible#1{\beamer@spacingcover#1\beamer@spacingcover} \long\def\beamer@makecovered#1{\beamer@startcovered#1\beamer@endcovered} \long\def\beamer@reallymakeinvisible#1{\beamer@begininvisible#1\beamer@endinvisible} \newcommand{\uncover}{\alt{\beamer@fakeinvisible}{\beamer@makecovered}} \newcommand{\visible}{\alt{\beamer@fakeinvisible}{\beamer@reallymakeinvisible}} \newcommand{\invisible}{\alt{\beamer@reallymakeinvisible}{\beamer@fakeinvisible}} \newenvironment{visibleenv}{\begin{altenv}{\beamer@spacingcover}{\beamer@spacingcover}{\beamer@begininvisible}{\beamer@endinvisible}}{\end{altenv}} \newenvironment{invisibleenv}{\begin{altenv}{\beamer@begininvisible}{\beamer@endinvisible}{\beamer@spacingcover}{\beamer@spacingcover}}{\end{altenv}} \newenvironment{uncoverenv}{\begin{altenv}{\beamer@spacingcover}{\beamer@spacingcover}{\beamer@startcovered}{\beamer@endcovered}}{\end{altenv}} \newenvironment{onlyenv}{\begin{altenv}{}{}{\begingroup\setbox0=\vbox\bgroup}{\egroup\endgroup}}{\end{altenv}} \renewcommand<>{\color}{\alt#1{\beameroriginal{\color}}{\beamer@gobbleoptionalinsp}} \mode
    { \newcommand{\uncover}{\alt{\@firstofone}{\@gobble}} \newcommand{\visible}{\alt{\@firstofone}{\@gobble}} \newcommand{\invisible}{\alt{\@gobble}{\@firstofone}} \newenvironment{onlyenv}{\begin{altenv}{}{}{\begingroup\setbox0=\vbox\bgroup}{\egroup\endgroup}}{\end{altenv}} \newenvironment{uncoverenv}{\begin{altenv}{}{}{\begingroup\setbox0=\vbox\bgroup}{\egroup\endgroup}}{\end{altenv}} \newenvironment{visibleenv}{\begin{altenv}{}{}{\begingroup\setbox0=\vbox\bgroup}{\egroup\endgroup}}{\end{altenv}} \newenvironment{invisibleenv}{\begin{altenv}{\begingroup\setbox0=\vbox\bgroup}{\egroup\endgroup}{}{}}{\end{altenv}} \AtBeginDocument{ % These have to be done late... \renewcommand<>{\color}{\alt#1{\beameroriginal{\color}}{\beamer@gobbleoptionalinsp}} } } \mode { \renewcommand<>{\textbf}{\only#1{\beameroriginal{\textbf}}} \renewcommand<>{\textit}{\only#1{\beameroriginal{\textit}}} \renewcommand<>{\textsl}{\only#1{\beameroriginal{\textsl}}} \renewcommand<>{\textsf}{\only#1{\beameroriginal{\textsf}}} \renewcommand<>{\textrm}{\only#1{\beameroriginal{\textrm}}} } \renewcommand<>{\hypertarget}[2]{\only#3{\beameroriginal{\hypertarget}{#1}{#2}}} \renewcommand<>{\hyperlink}[2]{\only#3{\beameroriginal{\hyperlink}{#1}{#2}}} \mode
    { \g@addto@macro\beamer@lastminutepatches{ % These have to be done late... \renewcommand<>{\hypertarget}[2]{\only#3{\beameroriginal{\hypertarget}{#1}{#2}}} \renewcommand<>{\hyperlink}[2]{\only#3{\beameroriginal{\hyperlink}{#1}{#2}}} } } \newcommand<>{\emph}[1]{{\only#2{\itshape}#1}} \mode
    { \renewcommand<>{\emph}{\only#1{\beameroriginal\emph}} } % % Insert area % \newenvironment{overlayarea}[2]{% \beamer@animht=#1\relax% \beamer@animwd=#2\relax% \setbox\beamer@areabox=\vbox to#2\bgroup% \strut\begin{minipage}[t]{#1}% } {% \end{minipage}\vfil% \egroup% \wd\beamer@areabox=\beamer@animht% \ht\beamer@areabox=\beamer@animwd% \dp\beamer@areabox=0pt% \box\beamer@areabox% } \mode
    { \newenvironment{overlayarea}[2]{}{}% no effect } \newenvironment{overprint}[1][\textwidth]{% \let\beamer@noargsonslide=\beamer@onslide% \let\beamer@noargsvisibleonslide=\beamer@onslide% \beamer@animht=0pt% \beamer@animdp=0pt% \beamer@animwd=#1\relax% \setbox\beamer@animcurrent=\box\beamer@animshowbox% makes animshowbox empty \setbox\beamer@animcurrent=\hbox{}% \def\beamer@endaction{}% }{% \beamer@endaction% \ifvoid\beamer@animshowbox\setbox\beamer@animshowbox=\hbox{}\fi% \ht\beamer@animshowbox=\beamer@animht% \dp\beamer@animshowbox=\beamer@animdp% \wd\beamer@animshowbox=\beamer@animwd% \box\beamer@animshowbox% } \def\beamer@onslide<#1>{% \beamer@endaction% \alt<#1>{% \ifvoid\beamer@animshowbox\else\ClassError{beamer}{Overprints may not overlap}{}\fi% \def\beamer@endaction{% \end{minipage}% \egroup% \ifdim\beamer@animht<\ht\beamer@animcurrent\beamer@animht=\ht\beamer@animcurrent\fi% \ifdim\beamer@animdp<\dp\beamer@animcurrent\beamer@animdp=\dp\beamer@animcurrent\fi% \setbox\beamer@animshowbox=\copy\beamer@animcurrent} }% {\def\beamer@endaction{% \end{minipage}% \egroup% \ifdim\beamer@animht<\ht\beamer@animcurrent\beamer@animht=\ht\beamer@animcurrent\fi% \ifdim\beamer@animdp<\dp\beamer@animcurrent\beamer@animdp=\dp\beamer@animcurrent\fi}% }% \setbox\beamer@animcurrent=\vbox\bgroup\begin{minipage}[t]{\beamer@animwd}% } \mode
    { \newenvironment{overprint}[1][]% {% \let\beamer@noargsonslide=\beamer@onslide% \let\beamer@noargsvisibleonslide=\beamer@onslide% \begin{onlyenv}} {\end{onlyenv}} \def\beamer@onslide<#1>{\end{onlyenv}\begin{onlyenv}<#1>} } % % Transitions - DISTRACTING and to be used with CARE!!!! % \define@key{beamertrans}{direction}{\def\beamer@transdir{ /Di #1 }} \define@key{beamertrans}{duration}{\def\beamer@dur{ /D #1 }} \newcommand\beamer@dotrans[2][]{% \def\beamer@transdir{}% \def\beamer@dur{}% \setkeys{beamertrans}{#1}% \edef\beamer@temp{{pdfpagetransition={#2 \beamer@transdir\space\beamer@dur}}} \expandafter\hypersetup\beamer@temp} \mode
    { \newcommand\beamer@dotrans[2][]{} } \mode { \newcommand<>{\transblindshorizontal}[1][]{\only#2{\beamer@dotrans[#1]{Blinds /Dm /H}}} \newcommand<>{\transblindsvertical}[1][]{\only#2{\beamer@dotrans[#1]{Blinds /Dm /V}}} \newcommand<>{\transboxin}[1][]{\only#2{\beamer@dotrans[#1]{Box /M /I}}} \newcommand<>{\transboxout}[1][]{\only#2{\beamer@dotrans[#1]{Box /M /O}}} \newcommand<>{\transcover}[1][]{\only#2{\beamer@dotrans[#1]{Cover}}} \newcommand<>{\transdissolve}[1][]{\only#2{\beamer@dotrans[#1]{Dissolve}}} \newcommand<>{\transfade}[1][]{\only#2{\beamer@dotrans[#1]{Fade}}} \newcommand<>{\transglitter}[1][]{\only#2{\beamer@dotrans[#1]{Glitter}}} \newcommand<>{\transpush}[1][]{\only#2{\beamer@dotrans[#1]{Push}}} \newcommand<>{\transsplitverticalin}[1][]{\only#2{\beamer@dotrans[#1]{Split /Dm /V /M /I}}} \newcommand<>{\transsplitverticalout}[1][]{\only#2{\beamer@dotrans[#1]{Split /Dm /V /M /O}}} \newcommand<>{\transsplithorizontalin}[1][]{\only#2{\beamer@dotrans[#1]{Split /Dm /H /M /I}}} \newcommand<>{\transsplithorizontalout}[1][]{\only#2{\beamer@dotrans[#1]{Split /Dm /H /M /O}}} \newcommand<>{\transuncover}[1][]{\only#2{\beamer@dotrans[#1]{Uncover}}} \newcommand<>{\transwipe}[1][]{\only#2{\beamer@dotrans[#1]{Wipe}}} } \newcommand<>{\transduration}[1]{\only#2{\hypersetup{pdfpageduration=#1}}} \mode
    { \newcommand<>{\transduration}[1]{} } % % Animation macros % \def\animate<#1>{\transduration<#1| handout:0| trans:0>{0}} \def\animatevalue<#1-#2>#3#4#5{% \only<#1-#2>{}% enforce these frames \ifnum\beamer@slideinframe<#1\relax% #3=#4% \else% \ifnum\beamer@slideinframe<#2\relax% #3=#4\relax% #3=-#3\relax% \advance#3 by#5\relax% \beamer@animationtempa=#2\relax% \advance\beamer@animationtempa by-#1% \ifnum\beamer@animationtempa>0% \divide#3 by\beamer@animationtempa% \fi% \beamer@animationtempa=\beamer@slideinframe% \advance\beamer@animationtempa by-#1% \multiply#3 by\beamer@animationtempa% \advance#3 by#4% \else #3=#5% \fi% \fi% } \mode
    { \def\animate<#1>{} \def\animatevalue<#1-#2>#3#4#5{#3=#4} } % % Labels in overlays % \g@addto@macro\beamer@lastminutepatches{% \let\beamer@origlabel\label \def\label{\@ifnextchar<{\beamer@label}{\beamer@label<1>}} \let\beamer@origlabel@in@display\label@in@display \def\label@in@display{\@ifnextchar<{\beamer@label@in@display}{\beamer@label@in@display<1>}} } \def\beamer@label<#1>#2{\alt<#1>{\beamer@origlabel{#2}\beamer@nameslide{#2}}{\beamer@dummynameslide}} \def\beamer@label@in@display<#1>#2{\alt<#1>{\beamer@origlabel@in@display{#2}\beamer@nameslide{#2}}{\beamer@dummynameslide}} \mode
    { \g@addto@macro\beamer@lastminutepatches{ % Has to be done late... \renewcommand<>{\label}{\alt#1{\beameroriginal{\label}}{\@gobble}} \renewcommand<>{\label@in@display}{\alt#1{\beameroriginal{\label@in@display}}{\@gobble}} } } \AtBeginDocument { \let\beamer@origref=\ref \long\def\ref#1{\hyperlink{#1}{\beamer@origref{#1}}} } \mode %%% Local Variables: %%% mode: latex %%% TeX-master: "~/texmf/tex/latex/beamer/examples/beamerexample1.tex" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbasercs.sty000664 000000 000000 00000002024 12732552614 025527 0ustar00rootroot000000 000000 % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. % Get date and version from RCS Ids \def\beamer@parseid $#1: #2.#3,v #4 #5/#6/#7 #8${% \beamer@parsercsfile$#2/$ \def\beamer@rcsrevision{#4} \def\beamer@rcsdate{#5/#6/#7} } \def\beamer@parsercsfile$#1/#2${ \def\beamer@temp{#2} \ifx\beamer@temp\@empty \def\beamer@rcsfile{#1} \else \beamer@parsercsfile$#2$ \fi} \def\ProvidesPackageRCS $#1${ \beamer@parseid $#1$ \ProvidesPackage{\beamer@rcsfile}[\beamer@rcsdate\space (rcs-revision \beamer@rcsrevision)] } \def\ProvidesClassRCS $#1$ [#2]{% \beamer@parseid $#1$ \ProvidesClass{\beamer@rcsfile}[\beamer@rcsdate\space#2\space (rcs-revision \beamer@rcsrevision)] } \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbasercs.sty,v 1.3 2004/10/07 20:05:51 tantau Exp $ %%% Local Variables: %%% mode: latex %%% TeX-master: ../examples/beamerexample1.tex %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbasesection.sty000664 000000 000000 00000020514 12732552614 026410 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbasesection.sty,v 1.14 2004/10/07 20:19:44 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \mode { \def\beamer@secgobble{\@ifnextchar*{\beamer@secstargobble}{\beamer@gobbleoptional}} \def\beamer@secstargobble*{\beamer@gobbleoptional} } % % Lecture Definitions % \newif\ifbeamer@inlecture \beamer@inlecturetrue \newcounter{lecture} \renewcommand\thelecture{\@arabic\c@lecture} \let\insertlecturenumber=\thelecture \newcommand\lecture{\@dblarg\beamer@lecture} \long\def\beamer@lecture[#1]#2#3{ \beamer@savemode \mode \refstepcounter{lecture} \def\beamer@currentlecturelabel{#3} \def\beamer@lecturename{#2} \def\beamer@shortlecturename{#1} \ifx\beamer@onlylecture\@empty \else \ifx\beamer@currentlecturelabel\beamer@onlylecture \beamer@inlecturetrue \else \beamer@inlecturefalse \fi \fi \beamer@atbeginlecture \beamer@resumemode } \mode { \long\def\AtBeginLecture#1{% \def\beamer@atbeginlecture{#1}} \AtBeginLecture{} \newcommand\includeonlylecture[1]{% \def\beamer@onlylecture{#1}} \includeonlylecture{} } \newcommand\insertlecture{\beamer@lecturename} \newcommand\insertshortlecture[1][]{% {% \beamer@setupshort{#1}% \beamer@insertshort{\beamer@shortlecturename}% }} \mode
    { % no effect \newcommand\lecture[3][]{} } % % Part Definitions % \newcounter{part} \renewcommand\thepart{\@arabic\c@part} \beamer@partstartpage=1 \newcommand<>{\part}{\alt#1{\@dblarg\beamer@part}{\beamer@gobbleoptional}} \long\def\beamer@part[#1]#2{% \beamer@savemode% \mode% \ifbeamer@inlecture% \refstepcounter{part}% \def\beamer@partname{#2}% \def\beamer@partnameshort{#1}% \addtocontents{nav}{\protect\headcommand{\protect\partentry{#2}{\the\c@part}}}% \xdef\partlink{{Navigation\the\c@page}{\noexpand\beamer@partname}}% \xdef\partlinkshort{{Navigation\the\c@page}{\noexpand\beamer@partnameshort}}% \beamer@tempcount=\c@page\advance\beamer@tempcount by -1% \addtocontents{nav}{\protect\headcommand{% \protect\beamer@partpages{\the\beamer@partstartpage}{\the\beamer@tempcount}}}% \addtocontents{nav}{\protect\headcommand{% \protect\beamer@sectionpages{\the\beamer@sectionstartpage}{\the\beamer@tempcount}}}% \addtocontents{nav}{\protect\headcommand{% \protect\beamer@subsectionpages{\the\beamer@subsectionstartpage}{\the\beamer@tempcount}}}% \beamer@partstartpage=\c@page% \beamer@sectionstartpage=\c@page% \beamer@subsectionstartpage=\c@page% \setcounter{subsection}{0}% \def\insertsection{}% \def\insertsubsection{}% \def\lastsubsection{}% \def\insertpart{\expandafter\hyperlink\partlink}% \beamer@atbeginpart% \fi% \beamer@resumemode}% \def\insertpart{} \def\partlinkshort{{Navigation1}{}} \def\insertromanpartnumber{\@Roman\c@part} \def\insertpartnumber{\@arabic\c@part} \newcommand\insertshortpart[1][]{% {% \beamer@setupshort{#1}% \beamer@insertshort{\expandafter\hyperlink\partlinkshort}% }} \mode { \long\def\AtBeginPart#1{% \def\beamer@atbeginpart{#1}} \AtBeginPart{} } \mode
    { \ifx\part\@undefined% \else \renewcommand<>{\part}{\alt#1{\beameroriginal\part}{\beamer@gobbleoptional}} \fi } % % Section Definitions % \def\sectionname{Section} \newcounter{section} \renewcommand\thesection{\@arabic\c@section} \beamer@sectionstartpage=1\relax \beamer@tocsectionnumber=0\relax \newcommand<>{\section}{\alt#1{\@ifnextchar[\beamer@section\beamer@@section}{\beamer@secgobble}} \def\beamer@@section{\@ifnextchar*\beamer@@ssection\beamer@@@section} \long\def\beamer@@ssection*#1{\beamer@section[#1]{}} \long\def\beamer@@@section#1{\beamer@section[#1]{#1}} \long\def\beamer@section[#1]#2{% \beamer@savemode% \mode% \ifbeamer@inlecture \refstepcounter{section}% \beamer@ifempty{#2}% {\long\def\secname{#1}}% {\advance\beamer@tocsectionnumber by 1\relax% \long\def\secname{#2}\addtocontents{toc}{\protect\beamer@sectionintoc{\the\c@section}{#2}{\the\c@page}{\the\c@part}% {\the\beamer@tocsectionnumber}}}% {\let\\=\relax\xdef\sectionlink{{Navigation\the\c@page}{\noexpand\secname}}}% \beamer@tempcount=\c@page\advance\beamer@tempcount by -1% \beamer@ifempty{#1}{}{% \addtocontents{nav}{\protect\headcommand{\protect\sectionentry{\the\c@section}{#1}{\the\c@page}{\secname}{\the\c@part}}}% \addtocontents{nav}{\protect\headcommand{\protect\beamer@sectionpages{\the\beamer@sectionstartpage}{\the\beamer@tempcount}}}% \addtocontents{nav}{\protect\headcommand{\protect\beamer@subsectionpages{\the\beamer@subsectionstartpage}{\the\beamer@tempcount}}}% }% \beamer@sectionstartpage=\c@page% \beamer@subsectionstartpage=\c@page% \def\insertsection{\expandafter\hyperlink\sectionlink}% \def\insertsubsection{}% \def\lastsubsection{}% \Hy@writebookmark{\the\c@section}{\secname}{Outline\the\c@section}{1}{toc}% \hyper@anchorstart{Outline\the\c@section}\hyper@anchorend% \beamer@ifempty{#2}{\beamer@atbeginsections}{\beamer@atbeginsection}% \fi% \beamer@resumemode}% \def\insertsection{} \def\lastsubsection{} \def\breakhere{\protect\beamer@breakhere} \def\beamer@breakhere{} \mode { \def\AtBeginSection{\@ifnextchar[{\beamer@AtBeginSection}{\beamer@@AtBeginSection}} \long\def\beamer@@AtBeginSection#1{\beamer@AtBeginSection[#1]{#1}} \long\def\beamer@AtBeginSection[#1]#2{% \def\beamer@atbeginsection{#2}% \def\beamer@atbeginsections{#1}} \AtBeginSection{} } \mode
    { \renewcommand<>{\section}{\alt#1{\beameroriginal\section}{\beamer@secgobble}} } % % Subsection Definitions % \newcounter{subsection}[section] \renewcommand\thesubsection{\@arabic\c@subsection} \beamer@subsectionstartpage=1 \newcommand<>{\subsection}{\alt#1{\@ifnextchar[\beamer@subsection\beamer@@subsection}{\beamer@secgobble}} \def\beamer@@subsection{\@ifnextchar*\beamer@@ssubsection\beamer@@@subsection} \long\def\beamer@@ssubsection*#1{% \beamer@ifempty{#1}{\beamer@untitledsubsection}{\beamer@subsection[#1]{}}} \def\beamer@@@subsection#1{\beamer@subsection[#1]{#1}} \def\beamer@subsection[#1]#2{% \beamer@savemode% \mode% \ifbeamer@inlecture% \refstepcounter{subsection}% \beamer@ifempty{#2}{\long\def\subsecname{#1}\long\def\lastsubsection{#1}} {% \long\def\subsecname{#2}% \long\def\lastsubsection{#1}% \addtocontents{toc}{\protect\beamer@subsectionintoc{\the\c@section}{\the\c@subsection}{#2}{\the\c@page}{\the\c@part}{\the\beamer@tocsectionnumber}}% }% \beamer@tempcount=\c@page\advance\beamer@tempcount by -1% \addtocontents{nav}{\protect\headcommand{\protect\beamer@subsectionpages{\the\beamer@subsectionstartpage}{\the\beamer@tempcount}}}% \beamer@subsectionstartpage=\c@page% \edef\subsectionlink{{Navigation\the\c@page}{\noexpand\subsecname}}% \def\insertsubsection{\expandafter\hyperlink\subsectionlink} \Hy@writebookmark{\the\c@subsection}{#1}{Outline\the\c@section.\the\c@subsection.\the\c@page}{2}{toc}% \hyper@anchorstart{Outline\the\c@section.\the\c@subsection.\the\c@page}\hyper@anchorend% \beamer@ifempty{#2}{\beamer@atbeginsubsections}{\beamer@atbeginsubsection}% \fi% \beamer@resumemode} \def\insertsubsection{} \def\beamer@untitledsubsection{% \refstepcounter{subsection}% \def\insertsubsection{}% \def\lastsubsection{}} \mode { \def\AtBeginSubsection{\@ifnextchar[{\beamer@AtBeginSubsection}{\beamer@@AtBeginSubsection}} \long\def\beamer@@AtBeginSubsection#1{\beamer@AtBeginSubsection[#1]{#1}} \long\def\beamer@AtBeginSubsection[#1]#2{% \def\beamer@atbeginsubsection{#2}% \def\beamer@atbeginsubsections{#1}} \AtBeginSubsection{} } \mode
    { \renewcommand<>{\subsection}{\alt#1{\beameroriginal\subsection}{\beamer@secgobble}} } % % Appendix stuff % \newcommand<>\appendix{% \only#1{\part{\appendixname} \addtocontents{nav}{\protect\headcommand{\protect\beamer@appendixpages{\the\c@page}}}}} \mode
    { \ifx\appendix\@undefined \else \renewcommand<>{\appendix}{\only#1{\beameroriginal\appendix}} \fi } \mode %%% Local Variables: %%% mode: latex %%% TeX-master: "~/texmf/tex/latex/beamer/examples/beamerexample1.tex" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbasetemplates.sty000664 000000 000000 00000013146 12732552614 026745 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbasetemplates.sty,v 1.50 2004/10/07 20:17:58 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. % % Template Installation Commands % \def\usebeamertemplate{\@ifstar{\beamer@usebeamertemplates}{\beamer@usebeamertemplatedo}} \def\beamer@usebeamertemplates{\@ifstar{\beamer@usebeamertemplatess}{\beamer@usebeamertemplatedos}} \def\beamer@usebeamertemplatess{\@ifstar{\beamer@usebeamertemplatedosss}{\beamer@usebeamertemplatedoss}} \def\beamer@usebeamertemplatedo#1{\csname beamer@@tmpl@#1\endcsname} \def\beamer@usebeamertemplatedos#1{{{\usebeamerfont{#1}\usebeamercolor[fg]{#1}\csname beamer@@tmpl@#1\endcsname}}} \def\beamer@usebeamertemplatedoss#1{{{\usebeamerfont*{#1}\usebeamercolor[fg]{#1}\csname beamer@@tmpl@#1\endcsname}}} \def\beamer@usebeamertemplatedosss#1{{{\usebeamerfont*{#1}\usebeamercolor*[fg]{#1}\csname beamer@@tmpl@#1\endcsname}}} \long\def\beamer@@empty{} \def\expandbeamertemplate#1{\csname beamer@@tmpl@#1\endcsname} \def\ifbeamertemplateempty#1#2#3{% \def\beamer@ifdo{#3}% \expandafter\ifx\csname beamer@@tmpl@#1\endcsname\relax\def\beamer@ifdo{#2}\fi% \expandafter\ifx\csname beamer@@tmpl@#1\endcsname\beamer@@empty\def\beamer@ifdo{#2}\fi% \beamer@ifdo} \mode
    { % the following do the same in article mode: \let\beamer@usebeamertemplatedosss=\beamer@usebeamertemplatedo \let\beamer@usebeamertemplatedoss=\beamer@usebeamertemplatedo \let\beamer@usebeamertemplatedos=\beamer@usebeamertemplatedo } \newif\ifbeamer@sbt \newtoks\beamer@sbttoks \newcommand<>\defbeamertemplate{ \beamer@ifempty{#1} {\def\beamer@@oar{}} {\def\beamer@@oar{#1}}\beamer@defbeamertemplate} \def\beamer@defbeamertemplate{\@ifstar{\beamer@sbttrue\beamer@sbtoo}{\beamer@sbtfalse\beamer@sbtoo}} \def\beamer@sbtoo#1#2{\@ifnextchar[{\beamer@sbto{#1}{#2}}{\beamer@sbto{#1}{#2}[0]}} \def\beamer@sbto#1#2[#3]{\@ifnextchar[{\beamer@@sbto{#1}{#2}[#3]}{\def\beamer@sbtotemp{}\beamer@@@sbto{#1}{#2}[#3]}} \long\def\beamer@@sbto#1#2[#3][#4]{\long\def\beamer@sbtotemp{[#4]}\beamer@@@sbto{#1}{#2}[#3]} \long\def\beamer@@@sbto#1#2[#3]#4{% \beamer@sbttoks={\beamer@@@@sbto{#1}{#2}[#3]{#4}}% \@ifnextchar[{\the\beamer@sbttoks}{\the\beamer@sbttoks[action]{}}% } \long\def\beamer@@@@sbto#1#2[#3]#4[#5]#6{% \edef\beamer@@sbtoarg{\expandafter\noexpand\csname beamer@@tmpop@#1@#2\endcsname[#3]}% \expandafter\expandafter\expandafter\newcommand\expandafter\beamer@@sbtoarg\beamer@sbtotemp{% \expandafter\long\expandafter\def\csname beamer@@tmpl@#1\endcsname{#4}#6}% \let\beamer@@next=\beamer@resetsbtoarg% \expandafter\mode\beamer@@oar{\let\beamer@@next=\relax}% \beamer@@next% \ifbeamer@sbt\setbeamertemplate{#1}[#2]\relax\relax\relax\relax\relax\relax\relax\relax\relax\fi% } \def\beamer@resetsbtoarg{% \expandafter\expandafter\expandafter\renewcommand\expandafter\beamer@@sbtoarg\beamer@sbtotemp{} } \def\defbeamertemplatealias#1#2#3{% \edef\beamer@@temp{\def\expandafter\noexpand\csname beamer@@tmpop@#1@#2\endcsname{\expandafter\noexpand\csname beamer@@tmpop@#1@#3\endcsname}}% \beamer@@temp} \def\defbeamertemplateparent#1{\@ifnextchar[{\beamer@sbtoparo{#1}}{\beamer@sbtoparo{#1}[*]}} \def\beamer@sbtoparo#1[#2]#3{\@ifnextchar[{\beamer@sbtopar{#1}[#2]{#3}}{\beamer@sbtopar{#1}[#2]{#3}[0]}} \def\beamer@sbtopar#1[#2]#3[#4]{\@ifnextchar[ {\beamer@@sbtopar{#1}[#2]{#3}[#4]} {\def\beamer@sbtotemp{}\beamer@@@sbtopar{#1}[#2]{#3}[#4]}} \long\def\beamer@@sbtopar#1[#2]#3[#4][#5]{\long\def\beamer@sbtotemp{[#5]}\beamer@@@sbtopar{#1}[#2]{#3}[#4]} \long\def\beamer@@@sbtopar#1[#2]#3[#4]#5{% \expandafter\def\csname beamer@@tmpgrp@#1\endcsname{#3}% \edef\beamer@@sbtoarg{\noexpand\newcommand\expandafter\noexpand\csname beamer@@tmpop@#1@#2\endcsname[#4]}% \expandafter\beamer@@sbtoarg\beamer@sbtotemp{% \def\beamer@sbtlist{#3}% \@for\beamer@templ:=\beamer@sbtlist\do {\expandafter\expandafter\expandafter\setbeamertemplate \expandafter\expandafter\expandafter{\expandafter\beamer@templ\expandafter}\expandafter[\beamer@@sbt@option]#5}}} \def\setbeamertemplate#1{% \@ifnextchar[{\beamer@sbtchoose{#1}}{\beamer@sbtexec{#1}}} \long\def\beamer@sbtexec#1#2{% \expandafter\long\expandafter\def\csname beamer@@tmpl@#1\endcsname{#2}% \expandafter\ifx\csname beamer@@tmpgrp@#1\endcsname\relax% \else% \expandafter\expandafter\expandafter\def \expandafter\expandafter\expandafter\beamer@sbt@group \expandafter\expandafter\expandafter{\csname beamer@@tmpgrp@#1\endcsname}% \@for\beamer@templ:=\beamer@sbt@group\do{\expandafter\setbeamertemplate\expandafter{\beamer@templ}{#2}}% \fi% } \long\def\beamer@sbtchoose#1[#2]{\def\beamer@@sbt@option{#2}% \expandafter\ifx\csname beamer@@tmpop@#1@#2\endcsname\relax% \expandafter\let\expandafter\beamer@@next\csname beamer@@tmpop@#1@*\endcsname% \else% \expandafter\let\expandafter\beamer@@next\csname beamer@@tmpop@#1@#2\endcsname% \fi% \beamer@@next% } \newcommand\addtobeamertemplate[3]{% \long\def\beamer@temp{#2}% \expandafter\def\expandafter\beamer@@temp\expandafter{\expandafter\long\expandafter\def\csname beamer@@tmpl@#1\endcsname}% \expandafter\expandafter\expandafter\long% \expandafter\expandafter\expandafter\def% \expandafter\expandafter\expandafter\beamer@@addtemplate% \expandafter\expandafter\expandafter{\csname beamer@@tmpl@#1\endcsname}% \expandafter\expandafter\expandafter\beamer@@temp% \expandafter\expandafter\expandafter{\expandafter\beamer@temp\beamer@@addtemplate#3}% } \RequirePackage{beamerbaseauxtemplates} \mode semantik-0.9.5/src/templates/beamer/beamermindist/beamerbasethemes.sty000664 000000 000000 00000002300 12732552614 026222 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbasethemes.sty,v 1.9 2004/10/07 20:17:58 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. % % Basic commands for including themes % \mode { \def\beamer@calltheme#1#2#3{% \def\beamer@themelist{#2} \@for\beamer@themename:=\beamer@themelist\do {\usepackage[#1]{#3\beamer@themename}}} \newcommand\usetheme[2][]{\beamer@calltheme{#1}{#2}{beamertheme}} \newcommand\usecolortheme[2][]{\beamer@calltheme{#1}{#2}{beamercolortheme}} \newcommand\usefonttheme[2][]{\beamer@calltheme{#1}{#2}{beamerfonttheme}} \newcommand\useoutertheme[2][]{\beamer@calltheme{#1}{#2}{beameroutertheme}} \newcommand\useinnertheme[2][]{\beamer@calltheme{#1}{#2}{beamerinnertheme}} } \mode
    { \newcommand\usetheme[2][]{} \newcommand\usecolortheme[2][]{} \newcommand\usefonttheme[2][]{} \newcommand\useoutertheme[2][]{} \newcommand\useinnertheme[2][]{} } %%% Local Variables: %%% mode: latex %%% TeX-master: "~/texmf/tex/latex/beamer/examples/beamerexample1.tex" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbasetheorems.sty000664 000000 000000 00000010376 12732552614 026577 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbasetheorems.sty,v 1.6 2004/10/07 20:19:44 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \ifbeamer@ams \RequirePackage{amsmath} \RequirePackage{amsthm} % For old versions of amsthm \providecommand\thm@space@setup{} \providecommand\pushQED[1]{\def\beamer@qed{#1}} \providecommand\popQED{\beamer@qed} \providecommand\qedhere{\qed} % Redfine certain amsthm internals: \def\@thm#1#2#3{% \ifhmode\unskip\unskip\par\fi \normalfont \let\thmheadnl\relax \let\thm@swap\@gobble \thm@headpunct{.}% add period after heading \thm@space@setup #1% style overrides \def\inserttheoremname{#3} \def\inserttheorempunctuation{\the\thm@headpunct} \def\@tempa{#2}% \ifx\@empty\@tempa \def\inserttheoremnumber{} \else \refstepcounter{#2}% \expandafter\def\expandafter\inserttheoremnumber\expandafter{ \csname the#2\endcsname} \fi \beamer@begintheorem% } \let\beamer@origxthm=\@xthm \def\@xthm#1{\resetcounteronoverlays{#1}\beamer@origxthm{#1}} \def\inserttheoremheadfont{\the\thm@headfont} \def\inserttheoremblockenv{block} \def\th@example{% \normalfont % body font \def\inserttheoremblockenv{exampleblock} } \newcommand<>\beamer@begintheorem[1][]{% \beamer@ifempty{#1} {\def\inserttheoremaddition{}} {\def\inserttheoremaddition{#1}} \usebeamertemplate{theorem begin}#2} \def\@endtheorem{\usebeamertemplate{theorem end}} \renewenvironment<>{proof}[1][\proofname]{% \par \def\insertproofname{#1\@addpunct{.}}% \pushQED{\qed} \usebeamertemplate{proof begin}#2} {\popQED\usebeamertemplate{proof end}} \fi \def\qedsymbol{\leavevmode\hbox{\usebeamertemplate*{qed symbol}}} \mode
    { \ifbeamer@ams \RequirePackage{amsmath} \RequirePackage{amsthm} \renewenvironment<>{proof}[1][\proofname] {\begin{actionenv}#2\begin{originalproof}[#1]}{\end{originalproof}\end{actionenv}} % Make new theorem overlay-specification-aware \let\beamer@origthm=\@thm \def\@thm#1#2#3{\def\beamer@store{{#1}{#2}{#3}}\beamer@readspec} \newcommand<>\beamer@readspec[1][]{\def\beamer@storeaction{\begin{actionenv}#2}% \expandafter\beamer@origthm\beamer@store[#1]} \let\beamer@origbegintheorem=\@begintheorem \def\@begintheorem{\beamer@storeaction\beamer@origbegintheorem} \let\beamer@origendtheorem=\@endtheorem \def\@endtheorem{\beamer@origendtheorem\end{actionenv}} \fi \def\th@example{\th@remark} \newcommand{\BeispielInline}[1]{Beispiel: \ignorespaces#1} \newcommand{\ExampleInline}[1]{Example: \ignorespaces#1} } \mode { \ifbeamer@blocks \ifbeamer@countsect \newtheorem{theorem}{Theorem}[section] \else \newtheorem{theorem}{Theorem} \fi \newtheorem{corollary}[theorem]{Corollary} \newtheorem{fact}[theorem]{Fact} \newtheorem{lemma}[theorem]{Lemma} \newtheorem{problem}[theorem]{Problem} \newtheorem{Loesung}[theorem]{L\"osung} \newtheorem{Satz}[theorem]{Satz} \newtheorem{Folgerung}[theorem]{Folgerung} \newtheorem{Fakt}[theorem]{Fakt} \theoremstyle{definition} \newtheorem{definition}[theorem]{Definition} \newtheorem{definitions}[theorem]{Definitions} \theoremstyle{example} \newtheorem{Beispiel}[theorem]{Beispiel} \newtheorem{Beispiele}[theorem]{Beispiele} \newtheorem{example}[theorem]{Example} \newtheorem{examples}[theorem]{Examples} \theoremstyle{plain} % Alias \newenvironment{Beweis}{\begin{proof}[Beweis.]}{\end{proof}} \newenvironment{Lemma}{\begin{lemma}}{\end{lemma}} \newenvironment{Proof}{\begin{proof}}{\end{proof}} \newenvironment{Theorem}{\begin{theorem}}{\end{theorem}} \newenvironment{Problem}{\begin{problem}}{\end{problem}} \newenvironment{Corollary}{\begin{corollary}}{\end{corollary}} \newenvironment{Example}{\begin{example}}{\end{example}} \newenvironment{Examples}{\begin{examples}}{\end{examples}} \newenvironment{Definition}{\begin{definition}}{\end{definition}} \fi } \mode % End in common mode %%% Local Variables: %%% mode: latex %%% TeX-master: "~/texmf/tex/latex/beamer/examples/beamerexample1.tex" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbasetitle.sty000664 000000 000000 00000012052 12732552614 026063 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbasetitle.sty,v 1.21 2004/10/07 20:19:44 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode % % % The \maketitle command (for compatibility with other classes) % % \def\maketitle{\ifbeamer@inframe\titlepage\else\frame{\titlepage}\fi} % % % The \titlepage and \partpage % % \def\titlepage{\usebeamertemplate*{title page}} \def\partpage{\usebeamertemplate*{part page}} \mode
    {\providecommand\partpage{}} % % % The \title command % % \renewcommand{\title}{\@dblarg\beamer@title} \long\def\beamer@title[#1]#2{% \def\inserttitle{#2}% \def\beamer@shorttitle{#1}% } \title{} \newcommand\insertshorttitle[1][]{% \beamer@setupshort{#1}% \ifnum\c@page=1% \hyperlinkpresentationend{\beamer@insertshort{\beamer@shorttitle}}% \else% \hyperlinkpresentationstart{\beamer@insertshort{\beamer@shorttitle}}% \fi} \mode
    { \let\beamer@origtitle=\title \renewcommand{\title}[2][]{\beamer@origtitle{#2}} } % % % The \subtitle command % % \newcommand{\subtitle}{\@dblarg\beamer@subtitle} \long\def\beamer@subtitle[#1]#2{% \def\insertsubtitle{#2}% \def\beamer@shortsubtitle{#1}% } \subtitle{} \newcommand\insertshortsubtitle[1][]{% \beamer@setupshort{#1}% \ifnum\c@page=1% \hyperlinkpresentationend{\beamer@insertshort{\beamer@shortsubtitle}}% \else% \hyperlinkpresentationstart{\beamer@insertshort{\beamer@shortsubtitle}}% \fi} \ifbeamer@autopdfinfo% \g@addto@macro\beamer@firstminutepatches { \begingroup \let\beamer@saved@hook\pdfstringdefPreHook \pdfstringdefDisableCommands{% \let\\=\ \let\newline=\\% }% \hypersetup{pdftitle={\inserttitle\ifx\insertsubtitle\@empty\else\ - \insertsubtitle\fi}} \global\let\pdfstringdefPreHook\beamer@saved@hook \endgroup } \fi% \mode
    { \providecommand{\subtitle}[2][]{\g@addto@macro\@title{\\{\normalsize#2}}} } % % % The \date command % % \def\date{\@dblarg\beamer@date} \long\def\beamer@date[#1]#2{% \def\insertdate{#2}% \def\beamer@shortdate{#1}% } \date{\today} \newcommand\insertshortdate[1][]{% {% \beamer@setupshort{#1}% \beamer@insertshort{\beamer@shortdate}% }} \mode
    { \let\beamer@origdate=\date \renewcommand{\date}[2][]{\beamer@origdate{#2}} } % % % The \author command % % \def\author{\@dblarg\beamer@author} \long\def\beamer@author[#1]#2{% \def\insertauthor{\def\inst{\beamer@insttitle}\def\and{\beamer@andtitle}#2}% \def\beamer@shortauthor{#1}% \ifbeamer@autopdfinfo% \def\beamer@andstripped{}% \beamer@stripands#2 \and\relax {\let\inst=\@gobble\def\and{, }\hypersetup{pdfauthor={\beamer@andstripped}}} \fi% } \def\beamer@stripands#1 \and#2\relax{% \def\beamer@temp{#2}% \ifx\beamer@temp\@empty \expandafter\def\expandafter\beamer@andstripped\expandafter{\beamer@andstripped#1} \else \expandafter\def\expandafter\beamer@andstripped\expandafter{\beamer@andstripped#1, } \beamer@stripands#2\relax% \fi } \author{} % Aux commands for \author \def\beamer@insttitle#1{{\donotcoloroutermaths$^{#1}$}} \def\beamer@andtitle{\quad} \def\beamer@instother#1{} \def\beamer@andother{\unskip, } \newcommand\insertshortauthor[1][]{% {% \def\inst{\beamer@instother}\def\and{\beamer@andother}% \beamer@setupshort{#1}% \beamer@insertshort{\beamer@shortauthor}% }} \mode
    { \let\beamer@origauthor=\author \renewcommand{\author}[2][]{\beamer@origauthor{#2}} } % % % The \titlegraphic command % % \mode { \newcommand\titlegraphic[1]{\def\inserttitlegraphic{#1}} \titlegraphic{} } % % % The \subject command % % \mode { \providecommand\subject[1]{\hypersetup{pdfsubject={#1}}} \providecommand\keywords[1]{\hypersetup{pdfkeywords={#1}}} } % % % The \institute command % % \def\institute{\@dblarg\beamer@institute} \long\def\beamer@institute[#1]#2{% \def\beamer@temp{#2}% \ifx\beamer@temp\@empty \def\insertinstitute{} \else \def\insertinstitute{\def\inst{\beamer@instinst}\def\and{\beamer@andinst}#2}% \fi \def\beamer@shortinstitute{#1}} \institute{} \def\beamer@instinst#1{{\donotcoloroutermaths$^{#1}$}\ignorespaces} \def\beamer@andinst{\\[1em]} \newcommand\insertshortinstitute[1][]{% {% \def\inst{\beamer@instother}\def\and{\beamer@andother}% \beamer@setupshort{#1}% \beamer@insertshort{\beamer@shortinstitute}% }} \mode
    { \ifx\institute\@undefined \newcommand{\institute}[2][]{} \else \let\beamer@originstitute=\institute \renewcommand{\institute}[2][]{\beamer@originstitute{#2}} \fi \providecommand\and{\unskip, } \providecommand\inst[1]{$^{#1}$} } % % % The \logo command % % \def\logo{\setbeamertemplate{logo}} \def\insertlogo{\usebeamertemplate*{logo}} \mode
    { \providecommand\logo[1]{} } \mode %%% Local Variables: %%% mode: latex %%% TeX-master: "~/texmf/tex/latex/beamer/examples/beamerexample1.tex" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/beamerbasetoc.sty000664 000000 000000 00000012231 12732552614 025526 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbasetoc.sty,v 1.19 2004/10/07 20:17:58 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode % % Local counters/ifs/dimensions % \newif\ifbeamer@pausesections \newif\ifbeamer@pausesubsections % % % Table of Contents Format % % \def\beamer@toc@sectionstyle#1{\beamer@toc@process\beamer@toc@cs\beamer@toc@os#1//} \def\beamer@toc@subsectionstyle#1{\beamer@toc@sprocess\beamer@toc@css\beamer@toc@oss\beamer@toc@ooss#1///} \define@key{beamertoc}{sectionstyle}{\beamer@toc@sectionstyle{#1}} \define@key{beamertoc}{subsectionstyle}{\beamer@toc@subsectionstyle{#1}} \def\beamer@toc@process#1#2#3/#4/{% \beamer@ifempty{#4}{\def#1{#3}\def#2{#3}}{\def#1{#3}\def#2{#4}\@gobble}} \def\beamer@toc@sprocess#1#2#3#4/#5/#6/{% \beamer@ifempty{#5}% {\def#1{#4}\def#2{#4}\def#3{#4}} {\beamer@ifempty{#6} {\def#1{#4}\def#2{#5}\def#3{#5}\@gobble} {\def#1{#4}\def#2{#5}\def#3{#6}\@gobbletwo}}} \define@key{beamertoc}{pausesections}[true]{\beamer@pausesectionstrue} \define@key{beamertoc}{pausesubsections}[true]{\beamer@pausesubsectionstrue} \define@key{beamertoc}{currentsection}[]{\beamer@toc@sectionstyle{show/shaded}\beamer@toc@subsectionstyle{show/show/shaded}} \define@key{beamertoc}{currentsubsection}[]{\beamer@toc@subsectionstyle{show/shaded}} \define@key{beamertoc}{hideallsubsections}[]{\beamer@toc@subsectionstyle{hide}} \define@key{beamertoc}{hideothersubsections}[]{\beamer@toc@subsectionstyle{show/show/hide}} \define@key{beamertoc}{part}{\beamer@showpartnumber=#1\relax} \define@key{beamertoc}{sections}{\beamer@parsetocsections#1[]} \define@key{beamertoc}{firstsection}{\beamer@sectionadjust=-#1\relax\advance\beamer@sectionadjust by 1\relax} \def\beamer@parsetocsections{\@ifnextchar<\beamer@@parsetocsections\beamer@@@parsetocsections} \def\beamer@@parsetocsections#1[]{\def\beamer@tocsections{#1}} \def\beamer@@@parsetocsections#1[]{\def\beamer@tocsections{}} \def\tableofcontents{\@ifnextchar[{\beamer@tableofcontents}{\beamer@tableofcontents[]}} \def\beamer@tableofcontents[#1]{% \def\beamer@toc@cs{show}% \def\beamer@toc@os{show}% \def\beamer@toc@css{show}% \def\beamer@toc@oss{show}% \def\beamer@toc@ooss{show}% \beamer@showpartnumber=\c@part% \beamer@pausesectionsfalse% \beamer@pausesubsectionsfalse% \def\beamer@tocsections{<*>}% \setkeys{beamertoc}{firstsection=1}% \setkeys{beamertoc}{#1}% \vspace*{-.5em}{\makeatletter% \pause[0]% \@input{\jobname.toc}% \vfill}% } \def\beamer@tocaction@show#1{\usebeamertemplate**{#1}} \def\beamer@tocaction@shaded#1{\usebeamertemplate**{#1 shaded}} \def\beamer@tocaction@hide#1{} \def\beamer@tocact#1#2{\csname beamer@tocaction@#1\endcsname{#2}} \def\beamer@tocifnothide#1{\csname beamer@tocinvcheck@#1\endcsname} \let\beamer@tocinvcheck@hide\@gobble \def\beamer@hidetext{hide} \def\sectionintoc{} \def\beamer@sectionintoc#1#2#3#4#5{% \ifnum\c@tocdepth>0% \ifnum#4=\beamer@showpartnumber% { \beamer@saveanother% \gdef\beamer@todo{}% \beamer@slideinframe=#1\relax% \expandafter\only\beamer@tocsections{\gdef\beamer@todo{% \beamer@tempcount=#5\relax% \advance\beamer@tempcount by\beamer@sectionadjust% \edef\inserttocsectionnumber{\the\beamer@tempcount}% \def\inserttocsection{\hyperlink{Navigation#3}{#2}}% \beamer@tocifnothide{\ifnum\c@section=#1\beamer@toc@cs\else\beamer@toc@os\fi}% { \ifbeamer@pausesections\pause\fi% \ifx\beamer@toc@ooss\beamer@hidetext \vskip1.5em \else \vfill \fi {% \hbox{\vbox{% \def\beamer@breakhere{\\}% \beamer@tocact{\ifnum\c@section=#1\beamer@toc@cs\else\beamer@toc@os\fi}{section in toc}}}% \par% }% }% } }% \beamer@restoreanother% } \beamer@todo% \fi\fi% } \def\subsectionintoc{} \long\def\beamer@subsectionintoc#1#2#3#4#5#6{% \ifnum\c@tocdepth>1% \ifnum#5=\beamer@showpartnumber% { \beamer@saveanother% \gdef\beamer@todo{}% \beamer@slideinframe=#1\relax% \expandafter\only\beamer@tocsections{\gdef\beamer@todo{% \ifbeamer@pausesubsections\pause\fi% \beamer@tempcount=#6% \advance\beamer@tempcount by\beamer@sectionadjust% \edef\inserttocsectionnumber{\the\beamer@tempcount}% \def\inserttocsubsectionnumber{#2}% \def\inserttocsubsection{\hyperlink{Navigation#4}{#3}}% \beamer@tocifnothide{\ifnum\c@section=#1\beamer@toc@oss\else\beamer@toc@ooss\fi}% {% \def\beamer@breakhere{\\}% \beamer@tocact{\ifnum\c@section=#1\ifnum\c@subsection=#2\beamer@toc@css\else\beamer@toc@oss\fi\else\beamer@toc@ooss\fi} {subsection in toc}% }% }}% \beamer@restoreanother% } \beamer@todo% \fi\fi% } \mode
    { \AtBeginDocument{ \let\beamer@origtableofcontents=\tableofcontents \renewcommand{\tableofcontents}[1][]{\beamer@origtableofcontents} } } \mode %%% Local Variables: %%% mode: latex %%% TeX-master: "~/texmf/tex/latex/beamer/examples/beamerexample1" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/pgf.sty000664 000000 000000 00000170751 12732552614 023522 0ustar00rootroot000000 000000 \ProvidesPackage{pgf}[2004/10/08 ver 0.64] % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the LaTeX Project Public License Distributed from CTAN % archives in directory macros/latex/base/lppl.txt. \newcount\pgf@objectcount \RequirePackage{graphicx} \RequirePackage{xcolor} \RequirePackage{keyval} \DeclareOption{pdf} { % Driver commands for pdf \ifx\pdfximage\@undefined% less than version 14 \let\pdfxform\pdfform \let\pdflastxform\pdflastform \let\pdfrefxform\pdfrefform \fi \def\pgfsys@lineto#1#2{\pgf@pdf{#1 #2 l}} \def\pgfsys@moveto#1#2{\pgf@pdf{#1 #2 m}} \def\pgfsys@closepath{\pgf@pdf{h}} \def\pgfsys@path{}% no action! \def\pgfsys@stroke{\pgf@pdf{S}} \def\pgfsys@closestroke{\pgf@pdf{s}} \def\pgfsys@fill{\pgf@pdf{f}} \def\pgfsys@fillstroke{\pgf@pdf{B}} \def\pgfsys@eofill{\pgf@pdf{f*}} \def\pgfsys@eofillstroke{\pgf@pdf{B*}} \def\pgfsys@clip{\pgf@pdf{W n}} \def\pgfsys@eoclip{\pgf@pdf{W* n}} \def\pgfsys@strokeclip{\pgf@pdf{W S}} \def\pgfsys@closestrokeclip{\pgf@pdf{W s}} \def\pgfsys@fillclip{\pgf@pdf{W f}} \def\pgfsys@fillstrokeclip{\pgf@pdf{W B}} \def\pgfsys@discardpath{\pgf@pdf{n}} \def\pgfsys@translate#1#2{\pgf@pdf{1 0 0 1 #1 #2 cm}} \def\pgfsys@scale#1#2{\pgf@pdf{#1 0 0 #2 0 0 cm}} \def\pgfsys@transform#1#2#3#4#5#6{\pgf@pdf{#1 #2 #3 #4 #5 #6 cm}} \def\pgfsys@openscope{\pgf@pdf{q}} \def\pgfsys@closescope{\pgf@pdf{Q}} \def\pgfsys@starthbox{\pgf@pdf{q}} \def\pgfsys@endhbox{\pgf@pdf{Q}} \def\pgfsys@openpicture{\pgf@pdf{q}} \def\pgfsys@closepicture{\pgf@pdf{n Q}} \def\pgfsys@setdash#1#2{\pgf@pdf{[#1] #2 d}} \def\pgfsys@setlinewidth#1{\pgf@pdf{#1 w}} \def\pgfsys@setmiterlimit#1{\pgf@pdf{#1 M}} \def\pgfsys@bezier#1#2#3#4#5#6{\pgf@pdf{#1 #2 #3 #4 #5 #6 c}} \def\pgfsys@rect#1#2#3#4{\pgf@pdf{#1 #2 #3 #4 re}} \def\pgfsys@buttcap{\pgf@pdf{0 J}} \def\pgfsys@roundcap{\pgf@pdf{1 J}} \def\pgfsys@rectcap{\pgf@pdf{2 J}} \def\pgfsys@miterjoin{\pgf@pdf{0 j}} \def\pgfsys@roundjoin{\pgf@pdf{1 j}} \def\pgfsys@beveljoin{\pgf@pdf{2 j}} \def\pgfsys@begininvisible{\pgf@pdf{1 0 0 1 2000 2000 cm}} \def\pgfsys@endinvisible{\pgf@pdf{1 0 0 1 -2000 -2000 cm}} % xform-free version \def\pgfsys@defobject#1#2#3#4{% \pgf@protocol{#4}% \expandafter\xdef\csname#1\endcsname{\pgf@prot\space}} \def\pgfsys@useobject#1#2{% \pgf@protocol{#2}% \pgf@pdf{\pgf@prot}% \pgf@pdf{\csname#1\endcsname}} % xform version (crashes ghostview) %\def\pgfsys@defobject#1#2#3#4{% % \pgf@process{#2} % \setbox\pgfobjectbox\hbox{\raise-\pgf@y\hbox{\hskip-\pgf@x\relax#4}} % \pgf@process{#3} % \pgf@xa=\pgf@x % \pgf@ya=\pgf@y % \pgf@process{#2} % \advance\pgf@xa by-\pgf@x % \advance\pgf@ya by-\pgf@y % \wd\pgfobjectbox=\pgf@xa % \dp\pgfobjectbox=0pt % \ht\pgfobjectbox=\pgf@ya % \pdfxform\pgfobjectbox % \expandafter\xdef\csname#1\endcsname{\the\pdflastxform} % \expandafter\xdef\csname pgf@trans#1\endcsname % {{\pgfget x}{\pgfget y}}} %\def\pgfsys@useobject#1#2{% % \setbox\pgfobjectbox\hbox{\pdfrefxform \csname#1\endcsname}% % \dp\pgfobjectbox=0pt% % \ht\pgfobjectbox=0pt% % \wd\pgfobjectbox=0pt% % \pgfsys@discardpath% % \pgfsys@openscope% % #2% % \edef\pgf@temp{{1}{0}{0}{1}\csname pgf@trans#1\endcsname}% % \expandafter\pgfsys@transform\pgf@temp% % \box\pgfobjectbox% % \pgfsys@closescope} \def\pgfsys@imagesuffixlist{pdf:jpg:png} \def\pgfsys@defineimage{% width, height, page number \ifx\pgf@imagewidth\@empty\else\edef\pgf@imagewidth{ width \pgf@imagewidth }\fi% \ifx\pgf@imageheight\@empty\else\edef\pgf@imageheight{ height \pgf@imageheight }\fi% \ifx\pgf@imagepage\@empty\else\edef\pgf@imagepage{ page \pgf@imagepage }\fi% \ifx\pdfximage\@undefined% old version of pdflatex \ifx\pgf@imagepage\@empty\else% \ClassWarning{beamer}{Page selection not supported. Ignoring page selection}% \fi% \setbox\pgf@tempbox=\hbox{% \pdfimage \pgf@imageheight \pgf@imagewidth {\pgf@filename}}% \pdfform\pgf@tempbox% \edef\pgf@image{\noexpand\pdfrefform\the\pdflastform}% \else% new version {\pdfximage \pgf@imageheight \pgf@imagewidth attr {\pgf@imageinterpolate\space\pgf@imagemask} \pgf@imagepage {\pgf@filename}}% \edef\pgf@image{\noexpand\pdfrefximage\the\pdflastximage}% \fi }% \def\pgfsys@definemask{% \ifx\pgf@maskmatte\@empty% \else% \edef\pgf@maskmatte{/Matte [\pgf@maskmatte]}% \fi% \edef\pgf@attr{{\pgf@maskmatte\space /Decode [1 0]}}% \immediate\pdfximage attr \pgf@attr {\pgf@filename}% \edef\pgf@mask{\the\pdflastximage}% } \PassOptionsToPackage{pdf}{pgfshade} } \DeclareOption{postscript} { % Driver commands for postscript \def\pgfsys@lineto#1#2{\pgf@ps{#1 #2 lineto}} \def\pgfsys@moveto#1#2{\pgf@ps{#1 #2 a}} \def\pgfsys@closepath{\pgf@ps{closepath}} \def\pgfsys@path{}% no action! \def\pgfsys@stroke{\pgf@ps{stroke}} \def\pgfsys@closestroke{\pgf@ps{closepath stroke}} \def\pgfsys@fill{\pgf@ps{fill}} \def\pgfsys@fillstroke{\pgf@ps{gsave fill grestore stroke}} \def\pgfsys@eofill{\pgf@ps{eofill}} \def\pgfsys@eofillstroke{\pgf@ps{gsave eofill grestore stroke}} \def\pgfsys@clip{\pgf@ps{pgfl}} \def\pgfsys@eoclip{\pgf@ps{eoclip newpath}} \def\pgfsys@strokeclip{\pgf@ps{gsave stroke grestore clip newpath}} \def\pgfsys@closestrokeclip{\pgf@ps{closepath gsave stroke grestore clip newpath}} \def\pgfsys@fillclip{\pgf@ps{gsave fill grestore clip newpath}} \def\pgfsys@fillstrokeclip{\pgf@ps{gsave fill grestore gsave stroke grestore clip newpath}} \def\pgfsys@discardpath{\pgf@ps{newpath}} \def\pgfsys@translate#1#2{\pgf@ps{#1 #2 translate}} \def\pgfsys@scale#1#2{\pgf@ps{#1 #2 scale}} \def\pgfsys@transform#1#2#3#4#5#6{\pgf@ps{[#1 #2 #3 #4 #5 #6] concat}} \def\pgfsys@openscope{\pgf@ps{gsave}} \def\pgfsys@closescope{\pgf@ps{grestore}} \def\pgfsys@openpicture{\special{ps: }% \special{ps::[begin]}\pgf@ps{pgfo}} \def\pgfsys@closepicture{\pgf@ps{pgfc}\special{ps::[end]}} \def\pgfsys@starthbox{\pgf@ps{pgfs}\special{ps::[end]}} \def\pgfsys@endhbox{\special{ps::[begin]}\pgf@ps{pgfr}} \def\pgfsys@setdash#1#2{\pgf@ps{[#1] #2 setdash}} \def\pgfsys@setlinewidth#1{\pgf@ps{#1 pgfw}} \def\pgfsys@setmiterlimit#1{\pgf@ps{#1 setmiterlimit}} \def\pgfsys@bezier#1#2#3#4#5#6{\pgf@ps{#1 #2 #3 #4 #5 #6 curveto}} \def\pgfsys@rect#1#2#3#4{\pgf@ps{#4 #3 #1 #2 pgfe}} \def\pgfsys@buttcap{\pgf@ps{0 setlinecap}} \def\pgfsys@roundcap{\pgf@ps{1 setlinecap}} \def\pgfsys@rectcap{\pgf@ps{2 setlinecap}} \def\pgfsys@miterjoin{\pgf@ps{0 setlinejoin}} \def\pgfsys@roundjoin{\pgf@ps{1 setlinejoin}} \def\pgfsys@beveljoin{\pgf@ps{2 setlinejoin}} \def\pgfsys@begininvisible{\special{ps::[begin]}% \pgf@ps{gsave nulldevice}\special{ps::[end]}} \def\pgfsys@endinvisible{\special{ps::[begin]}\pgf@ps{grestore}\special{ps::[end]}} \def\pgfsys@defobject#1#2#3#4{% \advance\pgf@objectcount by 1 \expandafter\xdef\csname#1\endcsname{\the\pgf@objectcount} \pgf@protocol{#4} \special{! /pgf\csname#1\endcsname{gsave exec \pgf@prot\space grestore} bind def}} \def\pgfsys@useobject#1#2{% \pgf@protocol{#2}% \pgf@ps{{\pgf@prot} pgf\csname#1\endcsname}} \def\pgfsys@imagesuffixlist{epsi:eps:ps} \def\pgfsys@defineimage{% \ifx\pgf@imagewidth\@empty\else\edef\pgf@imagewidth{width=\pgf@imagewidth,}\fi% \ifx\pgf@imageheight\@empty\else\edef\pgf@imageheight{height=\pgf@imageheight,}\fi% \ifx\pgf@imagepage\@empty\else% \ClassWarning{beamer}{Page selection not supported. Ignoring page selection}% \fi% \edef\pgf@image{\noexpand\includegraphics[\pgf@imageheight\pgf@imagewidth]{\pgf@filename}}% } \def\pgfsys@definemask{}% not supported. % Always present specials. \special{! /pgfl{clip newpath}B% clipping /pgfe{a dup 0 rlineto exch 0 exch rlineto neg 0 rlineto closepath}B% rectangle /pgfw{setlinewidth}B% setlinewidth /pgfs{save 72 Resolution div 72 VResolution div neg scale pgfx neg pgfy neg translate}B% save /pgfr{globaldict /pgfdelta /delta where {pop delta} {0} ifelse put restore /delta globaldict /pgfdelta get def}B %restore userdict begin% /pgfo{/pgfx currentpoint /pgfy exch def def @beginspecial}B %open /pgfc{newpath globaldict /pgfdelta /delta where {pop delta} {0} ifelse put @endspecial /delta globaldict /pgfdelta get def}B %close end} \PassOptionsToPackage{postscript}{pgfshade} } \ifx\pdfoutput\@undefined \newcount\pdfoutput \fi \ifx\pdfoutput\relax \newcount\pdfoutput \fi \ifcase\pdfoutput \ExecuteOptions{postscript} % default if no pdf \else \ExecuteOptions{pdf} % default if pdf \fi \newif\ifpgf@draftmode \pgf@draftmodefalse \DeclareOption{draft}{\pgf@draftmodetrue} \ProcessOptions % Transperency test: %\pdfpageresources{/ExtGState << /Semi << /Type /ExtGState /CA 0.1 /ca 0.1 >> >>} %\pdfliteral{q /Semi gs 10 w 0 0 m 100 100 l S 100 0 m 0 100 l S Q} %\immediate\pdfximage attr {/Matte [1 1 1] /Decode [1 0]} {g4.smask.jpg} %\pdfximage height 8cm attr {/Interpolate true /SMask \the\pdflastximage\space 0 R} {g4.jpg} %\hskip1cm\pdfrefximage\pdflastximage % Globals \newdimen\pgfex % will be equal to 1ex \newdimen\pgfem % will be equal to 1em \newdimen\pgf@linewidth \newbox\pgfpic \newbox\pgf@hbox \newbox\pgf@tempbox \newdimen\pgf@aax % Start of first line \newdimen\pgf@aay \newdimen\pgf@abx % End of first line \newdimen\pgf@aby \newdimen\pgf@bax % Start of last line \newdimen\pgf@bay \newdimen\pgf@bbx % End of last line \newdimen\pgf@bby \def\pgf@process#1{{#1\global\pgf@x=\pgf@x\global\pgf@y=\pgf@y}} \newdimen\pgf@tempdim \def\pgf@setlength#1#2{% these will be used only when \nullfont is active \begingroup% keep font setting local \selectfont% restore font \pgf@setlengthorig\pgf@tempdim{#2}% calculate dimension (possibly using calc) \global\pgf@tempdim\pgf@tempdim% make dimension global \endgroup% #1=\pgf@tempdim\relax} \def\pgf@addtolength#1#2{% \begingroup% keep font setting local \selectfont% restore font \pgf@tempdim#1\relax% \pgf@addtolengthorig\pgf@tempdim{#2}% calculate dimension (possibly using calc) \global\pgf@tempdim\pgf@tempdim% make dimension global \endgroup% #1=\pgf@tempdim\relax} % Internal locals values \newdimen\pgf@x \newdimen\pgf@y \newdimen\pgf@xa \newdimen\pgf@ya \newdimen\pgf@xb \newdimen\pgf@yb \newdimen\pgf@xc \newdimen\pgf@yc % Internal conversion functions { \catcode`\p=12\catcode`\t=12 \gdef\@gf@ge@#1pt{#1} } \def\pgfget#1{\expandafter\@gf@ge@\the\csname pgf@#1\endcsname}%\space} \def\pgf@bpcorr#1{#1=0.99626401#1}% \def\pgf@pdf#1{{\edef\a{{#1}}\pdfliteral\a}} \def\pgf@ps#1{{\edef\a{{ps:: #1}}\special\a}} \def\pgf@toprotocol#1{\xdef\pgf@prot{\pgf@prot#1\space}} \def\pgf@protocol#1{\xdef\pgf@prot{}% {\let\pgf@pdf=\pgf@toprotocol% \let\pgf@ps=\pgf@toprotocol% #1}} % Extract the x-coordinate of a point to a dimensions % % #1 = a TeX dimension % #2 = a point % % Example: % % \newdimen\mydim % \pgfextractx{\mydim}{\pgfpoint{2cm}{4pt}} % % \mydim is now 2cm \def\pgfextractx#1#2{% \pgf@process{#2}% #1=1.00375\pgf@x\relax} % Extract the y-coordinate of a point to a dimensions % % #1 = a TeX dimension % #2 = a point % % Example: % % \newdimen\mydim % \pgfextracty{\mydim}{\pgfpoint{2cm}{4pt}} % % \mydim is now 4pt \def\pgfextracty#1#2{% \pgf@process{#2}% #1=1.00375\pgf@y\relax} % Return a corner or the middle of a side of the rectangle whose two % corners are given by the two points. % % #1 = a direction, the values nw, sw, ne, se are corners, the values % n, s, e, w are middles of sides. Default is sw. % #1 = a point % #2 = a point % % Example: % % \pgfmoveto{\pgfcorner[sw]{\pgfpoint{2cm}{4pt}}{\pgfpoint{3cm}{2cm}}} % \pgflineto{\pgfcorner[nw]{\pgfpoint{2cm}{4pt}}{\pgfpoint{3cm}{2cm}}} % \pgflineto{\pgfcorner[se]{\pgfpoint{2cm}{4pt}}{\pgfpoint{3cm}{2cm}}} % \pgfclosepath \newcommand\pgfcorner[3][sw]{% \pgf@process{#2}% \pgf@xa=\pgf@x% \pgf@ya=\pgf@y% \pgf@process{#3}% \ifdim\pgf@xa<\pgf@x% \pgf@xb=\pgf@x% \pgf@x=\pgf@xa% \pgf@xa=\pgf@xb% \fi% \ifdim\pgf@ya<\pgf@y% \pgf@yb=\pgf@y% \pgf@y=\pgf@ya% \pgf@ya=\pgf@yb% \fi% \csname pgf@corner@#1\endcsname\relax% } \def\pgf@corner@se{\pgf@x=\pgf@xa} \def\pgf@corner@ne{\pgf@x=\pgf@xa\pgf@y=\pgf@ya} \def\pgf@corner@nw{\pgf@y=\pgf@ya} \def\pgf@corner@sw{} \def\pgf@corner@s{\pgf@x=.5\pgf@x\advance\pgf@x by.5\pgf@xa} \def\pgf@corner@n{\pgf@x=.5\pgf@x\advance\pgf@x by.5\pgf@xa\pgf@y=\pgf@ya} \def\pgf@corner@w{\pgf@y=.5\pgf@y\advance\pgf@y by.5\pgf@ya} \def\pgf@corner@e{\pgf@y=.5\pgf@y\advance\pgf@y by.5\pgf@ya\pgf@x=\pgf@xa} % Return a point % % #1 = x-coordinate of the point % #2 = y-coordinate of the point % % x = #1 % y = #2 % % Example: % % \pgfmoveto{\pgfpoint{2pt}{3cm}} \def\pgfpoint#1#2{% \setlength\pgf@x{#1}\pgf@bpcorr{\pgf@x}% \setlength\pgf@y{#2}\pgf@bpcorr{\pgf@y}\ignorespaces} % Return the origin. % % x = 0 % y = 0 % % Example: % % \pgfmoveto{\pgforigin} \def\pgforigin{\pgfpoint{0pt}{0pt}\ignorespaces} % Return a point that is #2 in a direction #1 of the origin. % % #1 = a direction (n,s,e,w,ne,nw,se,sw) % #2 = a distance from the origin % % Example: % % \pgfmoveto{\pgfpolar{\pgfdirection{n}}{1cm}} \def\pgfdirection#1{\csname pgf@direction#1\endcsname} \def\pgf@directionn{90} \def\pgf@directionnorth{90} \def\pgf@directionabove{90} \def\pgf@directions{270} \def\pgf@directionsouth{270} \def\pgf@directionbelow{270} \def\pgf@directionw{180} \def\pgf@directionwest{180} \def\pgf@directionleft{180} \def\pgf@directione{0} \def\pgf@directioneast{0} \def\pgf@directionright{0} \def\pgf@directionne{45} \def\pgf@directionse{315} \def\pgf@directionnw{135} \def\pgf@directionsw{-135} % Return the difference vector of two points. % % #1 = start of vector % #2 = end of vector % % x = x-component of difference % y = y-component of difference % % Example: % % \pgfmoveto{\pgfdiff{\pgfxy(1,1)}{\pgfxy(2,3)}} \def\pgfdiff#1#2{% \pgf@process{#1}% \pgf@xa=\pgf@x% \pgf@ya=\pgf@y% \pgf@process{#2}% \advance\pgf@x by-\pgf@xa\relax% \advance\pgf@y by-\pgf@ya\relax\ignorespaces} % Add two vectors. % % #1 = first vector % #2 = second vector % % x = x-component of addition % y = y-component of addition % % Example: % % \pgfmoveto{\pgfrelative{\pgfxy(0,1)}{\pgfxy(2,3)}} \def\pgfrelative#1#2{% \pgf@process{#1}% \pgf@xa=\pgf@x% \pgf@ya=\pgf@y% \pgf@process{#2}% \advance\pgf@x by\pgf@xa\relax% \advance\pgf@y by\pgf@ya\relax\ignorespaces} % Return a fraction of #1 of the way from #2 to #3. % % #1 = a fraction % #2 = start point % #3 = end point % % x = x-component of #1*start + (1-#1)*end % y = y-component of #1*start + (1-#1)*end % % Example: % % % Middle of (1,1) and (2,3) % \pgfmoveto{\pgfpartway{0.5}{\pgfxy(1,1)}{\pgfxy(2,3)}} \def\pgfpartway#1#2#3{% \pgf@process{#3}% \pgf@xa=\pgf@x% \pgf@ya=\pgf@y% \pgf@process{#2}% \advance\pgf@xa by-\pgf@x\relax% \advance\pgf@ya by-\pgf@y\relax% \advance\pgf@x by #1\pgf@xa\relax% \advance\pgf@y by #1\pgf@ya\relax% \ignorespaces} % Move point #2 #1 many units in the direction of #3. % % #1 = a distance % #2 = start point % #3 = end point % % x = x-component of start + #1*(normalise(end-start)) % y = y-component of start + #1*(normalise(end-start)) % % Example: % % % \pgfline{\pgfbackoff{2pt}{\pgfxy(1,1)}{\pgfxy(2,3)}} % {\pgfbackoff{3pt}{\pgfxy(2,3)}{\pgfxy(1,1)}} \def\pgfbackoff#1#2#3{% \pgf@process{#2}% \pgf@xb=\pgf@x\relax% xb/yb = start point \pgf@yb=\pgf@y\relax% \pgf@process{#3}% \advance\pgf@x by-\pgf@xb\relax% \advance\pgf@y by-\pgf@yb\relax% \pgfnormalise{}% x/y = normalised vector \setlength\pgf@xa{#1}\pgf@bpcorr{\pgf@xa}% \pgf@ya=\pgf@xa\relax% \pgf@mult{\pgf@xa}{\pgfget x}{\pgf@xa}% \pgf@mult{\pgf@ya}{\pgfget y}{\pgf@ya}% \pgf@x=\pgf@xb\relax% \pgf@y=\pgf@yb\relax% \advance\pgf@x by\pgf@xa\relax% \advance\pgf@y by\pgf@ya\relax% \ignorespaces} % Calculate a position for a label above a line. % % #1 = fraction of line where to put the label, where 0 means start, % 1 means end, and for example 0.5 means the middle. % #2 = start of line % #3 = end of line % #4 = vertical offset % % Example: % % \pgfputat{\pgflabel{.5}{\pgfxy(0,0)}{\pgfxy(3,2)}{4pt}}{\pgfbox[center,base]{Hi!}} \def\pgflabel#1#2#3#4{% % First, calculate base point \pgfpartway{#1}{#2}{#3}% \pgf@xb=\pgf@x% \pgf@yb=\pgf@y% \pgf@process{#2}% \pgf@xa=\pgf@x% xb/yb = start point \pgf@ya=\pgf@y% \pgf@process{#3}% \advance\pgf@x by-\pgf@xa% \advance\pgf@y by-\pgf@ya% \pgfnormalise{}% x/y = normalised vector \setlength\pgf@ya{#4}\pgf@bpcorr{\pgf@ya}% \pgf@xa=-\pgf@ya\relax% \pgf@mult{\pgf@xa}{\pgfget y}{\pgf@xa}% \pgf@mult{\pgf@ya}{\pgfget x}{\pgf@ya}% \pgf@x=\pgf@xb\relax% \pgf@y=\pgf@yb\relax% \advance\pgf@x by\pgf@xa\relax% \advance\pgf@y by\pgf@ya\relax% \ignorespaces} % Place a label above a line in a rotated way. % % #1 = fraction of line where to put the label, where 0 means start, % 1 means end, and for example 0.5 means the middle. % #2 = start of line % #3 = end of line % #4 = vertical offset % #5 = stuff to put % % Example: % % \pgfputlabelrotated{.5}{\pgfxy(0,0)}{\pgfxy(3,2)}{4pt}{\pgfbox[center,base]{Hi!}} \def\pgfputlabelrotated#1#2#3#4#5{% \pgflabel{#1}{#2}{#3}{#4}% \pgfputat{}{% \pgf@process{#2}% \pgf@xa=\pgf@x% xb/yb = start point \pgf@ya=\pgf@y% \pgf@process{#3}% \advance\pgf@x by-\pgf@xa% \advance\pgf@y by-\pgf@ya% \pgfnormalise{}% x/y = normalised vector \pgf@ya=-\pgf@y% \pgfsys@transform{\pgfget x}{\pgfget y}{\pgfget{ya}}{\pgfget x}{0}{0}% #5}% \ignorespaces} % Scopes % Pgf scope environment. All changes of the graphic state are local to % the scope. % % Example: % % \begin{pgfscope} % \pgfsetlinewidth{3pt} % \pgfline{\pgfxy(0,0)}{\pgfxy(3,3)} % \end{pgfscope} \def\pgfscope{\pgfsys@openscope\ignorespaces} \def\endpgfscope{\pgfsys@closescope\ignorespacesafterend\ignorespaces} % Internal function for creating a hbox. \long\def\pgf@makehbox#1{% \setbox\pgf@hbox=\hbox{{% \ifx\pgf@setlengthorig\@undefined% \else% \let\setlength\pgf@setlengthorig% \let\addtolength\pgf@addtolengthorig% \fi% \selectfont% #1}}} % Create a box that can contain normal TeX text. % % #1 = ``left'', ``center'' or ``right'' (horizontal align) % #2 = ``base'', ``bottom'', ``center'' or ``top'' (vertical align) % #3 = TeX text. % % Example: % % \pgfputat{\pgforigin}{\pgfbox[center,center]{Hello World!}} \long\def\pgfbox[#1,#2]#3{% \pgf@makehbox{#3}% \csname pgf@halign#1\endcsname% \csname pgf@valign#2\endcsname% \wd\pgf@hbox=0pt% \ht\pgf@hbox=0pt% \dp\pgf@hbox=0pt% \pgfsys@starthbox% \box\pgf@hbox% \pgfsys@endhbox% \ignorespaces} % Internal shifters \def\pgf@halignleft{}% do nothing \def\pgf@haligncenter{\setbox\pgf@hbox=\hbox{\hskip-.5\wd\pgf@hbox\box\pgf@hbox}} \def\pgf@halignright{\setbox\pgf@hbox=\hbox{\hskip-\wd\pgf@hbox\box\pgf@hbox}} \def\pgf@valignbase{}% do nothing \def\pgf@valignbottom{\setbox\pgf@hbox=\hbox{\raise\dp\pgf@hbox\box\pgf@hbox}} \def\pgf@valigncenter{\setbox\pgf@hbox=\hbox{\raise.5\dp\pgf@hbox\hbox{\raise-.5\ht\pgf@hbox\box\pgf@hbox}}} \def\pgf@valigntop{\setbox\pgf@hbox=\hbox{\raise-\ht\pgf@hbox\box\pgf@hbox}} % Set the line width to #1. % % #1 = new line width. % % Example: % % \pgfsetlinewidth{3pt} \def\pgfsetlinewidth#1{% \setlength\pgf@linewidth{#1}\pgf@bpcorr{\pgf@linewidth}% \pgfsys@setlinewidth{\pgfget{linewidth}}% \ignorespaces} % Set the miter limit to #1. % % #1 = new miter limit. % % Example: % % \pgfsetmiterlimit{3pt} \def\pgfsetmiterlimit#1{% \setlength\pgf@x{#1}\pgf@bpcorr{\pgf@x}% \pgfsys@setmiterlimit{\pgfget x}% \ignorespaces} % Set the dash pattern to #1 with phase #2/ % % #1 = a row of numbers of length of ``on'' and ``off'' points. % #2 = a phase % % Example: % % \pgfsetdash{} {0pt} % solid line % \pgfsetdash{{.1cm}} {0pt} % long dashes % \pgfsetdash{{1pt}{1ex}}{0pt} % dotted \def\pgfsetdash#1#2{% \def\pgf@temp{}% \def\pgf@next{\pgf@strip}% \pgf@strip#1{pgf@stop}% \setlength\pgf@x{#2}\pgf@bpcorr{\pgf@x}% \pgfsys@setdash{\pgf@temp}{\pgfget x}% \ignorespaces} \def\pgf@strip#1{% \def\pgf@@temp{#1}% \ifx\pgf@@temp\pgf@stop% \def\pgf@next{}% \else% \setlength\pgf@x{#1}\pgf@bpcorr{\pgf@x}% \edef\pgf@temp{\pgf@temp\space\pgfget x}% \fi\pgf@next} \def\pgf@stop{pgf@stop} % Set a butt line cap. % % Example: % % \pgfsetbuttcap \def\pgfsetbuttcap{\pgfsys@buttcap\ignorespaces} % Set a round line cap. % % Example: % % \pgfsetroundcap \def\pgfsetroundcap{\pgfsys@roundcap\ignorespaces} % Set a rectangular line cap. % % Example: % % \pgfsetrectcap \def\pgfsetrectcap{\pgfsys@rectcap\ignorespaces} % Set a miter line join. % % Example: % % \pgfsetmiterjoin \def\pgfsetmiterjoin{\pgfsys@miterjoin\ignorespaces} % Set a bevel line join. % % Example: % % \pgfsetbeveljoin \def\pgfsetbeveljoin{\pgfsys@beveljoin\ignorespaces} % Set a round line join. % % Example: % % \pgfsetroundjoin \def\pgfsetroundjoin{\pgfsys@roundjoin\ignorespaces} % Basic drawing % Move current point to #1. % % #1 = new current point % % Example: % % \pgfmoveto{\pgfxy(0,0)} % \pgflineto{\pgfxy(0,1)} % \pgfstroke \def\pgfmoveto#1{% \pgf@process{#1}% \pgfsys@moveto{\pgfget x}{\pgfget y}% \pgf@aax=\pgf@x% \pgf@aay=\pgf@y% \pgf@bbx=\pgf@x% \pgf@bby=\pgf@y\ignorespaces} % Append a line from the current point to #1 to the current path. % % #1 = end of line % % Example: % % \pgfmoveto{\pgfxy(0,0)} % \pgflineto{\pgfxy(0,1)} % \pgfstroke \def\pgflineto#1{% \pgf@process{#1}% \pgfsys@lineto{\pgfget x}{\pgfget y}% \ifnum\pgf@aax=\pgf@bbx\ifnum\pgf@aay=\pgf@bby% First lineto \pgf@abx=\pgf@x% \pgf@aby=\pgf@y \fi\fi% \pgf@bax=\pgf@bbx% \pgf@bay=\pgf@bby% \pgf@bbx=\pgf@x% \pgf@bby=\pgf@y% \ignorespaces} % Append a bezier spline from the current point to #3 with control % points #1 and #2 to the current path. % % #1 = first control point % #2 = second control point % #3 = end point % % Example: % % \pgfmoveto{\pgfxy(0,0)} % \pgfbezier{\pgfxy(0,1)}{\pgfxy(1,1)}{\pgfxy(1,2)} % \pgfstroke \def\pgfcurveto{\pgfbezier} \def\pgfbezier#1#2#3{% \pgf@process{#3}% \pgf@xb=\pgf@x% \pgf@yb=\pgf@y% \pgf@process{#2}% \pgf@xa=\pgf@x% \pgf@ya=\pgf@y% \pgf@process{#1}% \pgfsys@bezier{\pgfget x}{\pgfget y}{\pgfget{xa}}{\pgfget{ya}}% {\pgfget{xb}}{\pgfget{yb}}% \pgf@abx=\pgf@x% \pgf@aby=\pgf@y% \pgf@bax=\pgf@xa% \pgf@bay=\pgf@ya% \pgf@bbx=\pgf@xb% \pgf@bby=\pgf@yb\ignorespaces} % Close the current path. % % Example: % % % Draws two triangles % \pgfmoveto{\pgfxy(0,0)} % \pgflineto{\pgfxy(0,1)} % \pgflineto{\pgfxy(1,0)} % \pgfclosepath % \pgfmoveto{\pgfxy(2,0)} % \pgflineto{\pgfxy(2,1)} % \pgflineto{\pgfxy(3,0)} % \pgfclosepath % \pgfstroke \def\pgfclosepath{\pgfsys@closepath\ignorespaces} % This hook will be executed after something non-closed has been stroked. % % Example: % % \def\pgfstrokehook{\pgfcircle[fill]{\pgforigin}{4pt}} \def\pgfstrokehook{} % Stroke the current path. % % Example: % % % Draws two lines. % \pgfmoveto{\pgfxy(0,0)} % \pgflineto{\pgfxy(0,1)} % \pgflineto{\pgfxy(1,0)} % \pgfstroke \def\pgfstroke{\pgfsys@stroke\begingroup\pgfstrokehook\endgroup\ignorespaces} % Close the current path and then stroke it. % % Example: % % % Draw a closed triangle % \pgfmoveto{\pgfxy(0,0)} % \pgflineto{\pgfxy(0,1)} % \pgflineto{\pgfxy(1,0)} % \pgfclosestroke \def\pgfclosestroke{\pgfsys@closestroke\ignorespaces} % Fill the current path. % % Example: % % \pgfzerocircle{3cm} % \pgffill \def\pgffill{\pgfsys@fill\ignorespaces} % Fill and stroke the current path. % % Example: % % \pgfzerocircle{3cm} % \pgffillstroke \def\pgffillstroke{\pgfsys@fillstroke\ignorespaces} % Fill the current path using the even-odd-rule. % % Example: % % \pgfzerocircle{3cm} % \pgffill \def\pgfeofill{\pgfsys@eofill\ignorespaces} % Fill and stroke the current path the even-odd-rule. % % Example: % % \pgfzerocircle{3cm} % \pgffillstroke \def\pgfeofillstroke{\pgfsys@eofillstroke\ignorespaces} % Intersection the current path and the clipping path to form a new % clipping path % % Example: % % \pgfmoveto{\pgfxy(0,0)} % \pgflineto{\pgfxy(0,1)} % \pgflineto{\pgfxy(1,0)} % \pgfclosepath % \pgfclip \def\pgfclip{\pgfsys@clip\ignorespaces} % Stroke the current path and use it for clipping. % % Example: % % \pgfmoveto{\pgfxy(0,0)} % \pgflineto{\pgfxy(0,1)} % \pgflineto{\pgfxy(1,0)} % \pgfclosepath % \pgfstrokeclip \def\pgfstrokeclip{\pgfsys@strokeclip\ignorespaces} % Close the current path, stroke it, and use it for clipping. % % Example: % % \pgfmoveto{\pgfxy(0,0)} % \pgflineto{\pgfxy(0,1)} % \pgflineto{\pgfxy(1,0)} % \pgfclosestrokeclip \def\pgfclosestrokeclip{\pgfsys@closestrokeclip\ignorespaces} % Fill the current path and use it for clipping. % % Example: % % \pgfmoveto{\pgfxy(0,0)} % \pgflineto{\pgfxy(0,1)} % \pgflineto{\pgfxy(1,0)} % \pgffillclip \def\pgffillclip{\pgfsys@fillclip\ignorespaces} % Fill the current path, stroke it, and use it for clipping. % % Example: % % \pgfmoveto{\pgfxy(0,0)} % \pgflineto{\pgfxy(0,1)} % \pgflineto{\pgfxy(1,0)} % \pgffillstrokeclip \def\pgffillstrokeclip{\pgfsys@fillstrokeclip\ignorespaces} % Quick version of basic drawing commands % Move current point to (#1,#2). % % #1 = x dimension of new current point % #2 = y dimension of new current point % % Example: % % \pgfqmoveto{0}{0} % \pgfqlineto{1}{1} % \pgfqbezier{2}{1}{2}{2}{3}{2} % \pgfqstroke \def\pgfqmoveto#1#2{\pgfsys@moveto{#1}{#2}\ignorespaces} % Append a line to (#1,#2) to the current path. % % #1 = x dimension of target % #2 = y dimension of target % % Example: % % \pgfqmoveto{0}{0} % \pgfqlineto{1}{1} % \pgfqbezier{2}{1}{2}{2}{3}{2} % \pgfqstroke \def\pgfqlineto#1#2{\pgfsys@lineto{#1}{#2}\ignorespaces} % Append a bezier spline to the current path. % % #1 = x dimension of first support point % #2 = y dimension of first support point % #3 = x dimension of second support point % #4 = y dimension of second support point % #5 = x dimension of target point % #6 = y dimension of target point % % Example: % % \pgfqmoveto{0}{0} % \pgfqlineto{1}{1} % \pgfqbezier{2}{1}{2}{2}{3}{2} % \pgfqstroke \def\pgfqcurveto{\pgfqbezier} \def\pgfqbezier#1#2#3#4#5#6{\pgfsys@bezier{#1}{#2}{#3}{#4}{#5}{#6}\ignorespaces} % Stroke current path. No hooks called. % % Example: % % \pgfqmoveto{0cm}{0cm} % \pgfqlineto{1cm}{1cm} % \pgfqbezier{2cm}{1cm}{2cm}{2cm}{3cm}{2cm} % \pgfqstroke \def\pgfqstroke{\pgfsys@stroke\ignorespaces} % Append a circle of a given radius around the origin to the current path. % % #1 = radius % % Example: % % \pgfzerocircle{3cm} % \pgfstroke \def\pgfzerocircle#1{% \setlength\pgf@x{#1}\pgf@bpcorr{\pgf@x}% \pgf@y=0.555\pgf@x% \pgfsys@moveto{0}{\pgfget x}% \pgfsys@bezier{\pgfget y}{\pgfget x}{\pgfget x}{\pgfget y}{\pgfget x}{0}% \pgfsys@bezier{\pgfget x}{-\pgfget y}{\pgfget y} {-\pgfget x}{0}{-\pgfget x}% \pgfsys@bezier{-\pgfget y}{-\pgfget x}{-\pgfget x}% {-\pgfget y}{-\pgfget x}{0}% \pgfsys@bezier{-\pgfget x}{\pgfget y}{-\pgfget y}{\pgfget x}{0}{\pgfget x}% \pgfsys@closepath% \ignorespaces} % Append an ellipse with given axis vectors to the current path. % % #1 = first axis vector % #2 = second axis vector % % Example: % % \pgfzeroellipse{\pgfpoint{1cm}{1cm}}{\pgfpoint{-2cm}{2cm}} % \pgfstroke \def\pgfzeroellipse#1#2{% \pgf@process{#1}% \pgf@xa=\pgf@x% store first axis in xa/ya \pgf@ya=\pgf@y% \pgf@process{#2}% \pgf@xb=\pgf@x% store second axis in xb/yb \pgf@yb=\pgf@y% \pgfsys@moveto{\pgfget{xa}}{\pgfget{ya}}% \pgf@x=0.555\pgf@xb% first arc \pgf@y=0.555\pgf@yb% \advance\pgf@x by\pgf@xa% \advance\pgf@y by\pgf@ya% \edef\pgf@temp{{\pgfget x}{\pgfget y}}% \pgf@x=0.555\pgf@xa% \pgf@y=0.555\pgf@ya% \advance\pgf@x by\pgf@xb% \advance\pgf@y by\pgf@yb% \expandafter\pgfsys@bezier\pgf@temp{\pgfget x}{\pgfget y}{\pgfget{xb}}{\pgfget{yb}}% \pgf@xa=-\pgf@xa% flip first axis \pgf@ya=-\pgf@ya% \pgf@x=0.555\pgf@xa% second arc \pgf@y=0.555\pgf@ya% \advance\pgf@x by\pgf@xb% \advance\pgf@y by\pgf@yb% \edef\pgf@temp{{\pgfget x}{\pgfget y}}% \pgf@x=0.555\pgf@xb% \pgf@y=0.555\pgf@yb% \advance\pgf@x by\pgf@xa% \advance\pgf@y by\pgf@ya% \expandafter\pgfsys@bezier\pgf@temp{\pgfget x}{\pgfget y}{\pgfget{xa}}{\pgfget{ya}}% \pgf@xb=-\pgf@xb% flip second axis \pgf@yb=-\pgf@yb% \pgf@x=0.555\pgf@xb% third arc \pgf@y=0.555\pgf@yb% \advance\pgf@x by\pgf@xa% \advance\pgf@y by\pgf@ya% \edef\pgf@temp{{\pgfget x}{\pgfget y}}% \pgf@x=0.555\pgf@xa% \pgf@y=0.555\pgf@ya% \advance\pgf@x by\pgf@xb% \advance\pgf@y by\pgf@yb% \expandafter\pgfsys@bezier\pgf@temp{\pgfget x}{\pgfget y}{\pgfget{xb}}{\pgfget{yb}}% \pgf@xa=-\pgf@xa% flip first axis once more \pgf@ya=-\pgf@ya% \pgf@x=0.555\pgf@xa% fourth arc \pgf@y=0.555\pgf@ya% \advance\pgf@x by\pgf@xb% \advance\pgf@y by\pgf@yb% \edef\pgf@temp{{\pgfget x}{\pgfget y}}% \pgf@x=0.555\pgf@xb% \pgf@y=0.555\pgf@yb% \advance\pgf@x by\pgf@xa% \advance\pgf@y by\pgf@ya% \expandafter\pgfsys@bezier\pgf@temp{\pgfget x}{\pgfget y}{\pgfget{xa}}{\pgfget{ya}}% \pgfsys@closepath% \ignorespaces} % Higher order drawing in xy-coordinate system % Stroke a line from #1 to #2. % % #1 = start x % #2 = start y % #3 = end x % #4 = end y % % Example: % % \pgfxyline(0,0)(0,1) \def\pgfxyline(#1,#2)(#3,#4){% \pgfmoveto{\pgfxy(#1,#2)}% \pgflineto{\pgfxy(#3,#4)}% \pgfstroke} % A bezier curve from #1 to #2 with support #3 and #4. % % #1 = start x % #2 = start y % #3 = first support x % #4 = first support y % #5 = second support x % #6 = second support y % #7 = end x % #8 = end y % % Example: % % \pgfxycurve(0,0)(1,0)(1,1)(2,1) \def\pgfxycurve(#1,#2)(#3,#4)(#5,#6)(#7,#8){% \pgfmoveto{\pgfxy(#1,#2)}% \pgfbezier{\pgfxy(#3,#4)}{\pgfxy(#5,#6)}{\pgfxy(#7,#8)}% \pgfstroke} % Higher order drawing % Stroke a line from #1 to #2. % % #1 = start % #2 = end % % Example: % % \pgfline{\pgfxy(0,0)}{\pgfxy(0,1)} \def\pgfline#1#2{% \pgfmoveto{#1}% \pgflineto{#2}% \pgfstroke} % Stroke or fill an ellipse. % % #1 = ``stroke'' or ``fill'' or ``fillstroke'' % #2 = center % #3 = first axis % #4 = second axis % % Example: % % % Draw a filled circle of radius 3cm around the origin % \pgfellipse[fill]{\pgforigin}{\pgfxy(2,0)}{\pgfxy(0,1)} % % % Draw a non-filled circle of radius 1cm around the point (1,1) % \pgfellipse[stroke]{\pgfxy(1,1)}{\pgfxy(1,1)}{\pgfxy(-2,2)} \def\pgfellipse[#1]#2#3#4{% \begin{pgftranslate}{#2}% \pgfzeroellipse{#3}{#4}% \expandafter\ifx\csname pgfsys@#1\endcsname\relax% \PackageError{pgf}{Stroke style "#1" undefined.}{Using "stroke" instead.}% \pgfsys@stroke\else% \csname pgfsys@#1\endcsname\fi% \end{pgftranslate}\ignorespaces} % Stroke or fill a circle. % % #1 = ``stroke'' or ``fill'' or ``fillstroke'' % #2 = center % #3 = radius % % Example: % % % Draw a filled circle of radius 3cm around the origin % \pgfcircle[fill]{\pgforigin}{3cm} % % % Draw a non-filled circle of radius 1cm around the point (1,1) % \pgfcircle[stroke]{\pgxy(1,1)}{3cm} \def\pgfcircle[#1]#2#3{% \begin{pgftranslate}{#2}% \pgfzerocircle{#3}% \expandafter\ifx\csname pgfsys@#1\endcsname\relax% \PackageError{pgf}{Stroke style "#1" undefined.}{Using "stroke" instead.}% \pgfsys@stroke\else% \csname pgfsys@#1\endcsname\fi% \end{pgftranslate}\ignorespaces} % Stroke or fill a rectangle. % % #1 = ``stroke'' or ``fill'' or ``fillstroke'' % #2 = lower left corner point of rectangle % #3 = width and height vector % % Example: % % % Draw a filled rectangle with corners (2,2) and (3,3) % \pgfrect[fill]{\pgfxy(2,2)}{\pgfxy(1,1)} % % % Draw a non-filled rectangle with corners (-1,-1) and (1,1) % \pgfrect[fill]{\pgfxy(-1,-1)}{\pgfxy(2,2)} \def\pgfrect[#1]#2#3{% \pgf@process{#3}% \pgf@xa=\pgf@x% \pgf@ya=\pgf@y% \pgf@process{#2}% \pgfsys@rect{\pgfget x}{\pgfget y}{\pgfget{xa}}{\pgfget{ya}}% \csname pgfsys@#1\endcsname% \ignorespaces} % Draw a grid. % % #1 = lower left point of grid % #2 = upper right point of grid % % Options: % % stepx = x-step dimension (default 1cm) % stepy = y-step dimension (default 1cm) % step = dimesion vector % % Example: % % \pgfsetlinewidth{0.8pt} % \pgfgrid{\pgfxy(0,0)}{\pgfxy(3,2)} % \pgfsetlinewidth{0.4pt} % \pgfgrid[stepx=1cm,stepy=1cm]{\pgfxy(0,0)}{\pgfxy(3,2)} \define@key{pgfbase}{stepx}{\setlength{\pgf@x}{#1}\pgf@bpcorr{\pgf@x}\relax} \define@key{pgfbase}{stepy}{\setlength{\pgf@y}{#1}\pgf@bpcorr{\pgf@y}\relax} \define@key{pgfbase}{step}{\pgf@process{#1}} \newcommand\pgfgrid[3][]{% \setkeys{pgfbase}{stepx=1cm,stepy=1cm}% \setkeys{pgfbase}{#1}% \pgf@xc=\pgf@x% \pgf@yc=\pgf@y% \pgf@process{#3}% \pgf@xb=\pgf@x% \pgf@yb=\pgf@y% \pgf@process{#2}% \pgf@xa=\pgf@x\relax% \pgf@ya=\pgf@y\relax% \pgf@counta=\pgf@y\relax% \pgf@countb=\pgf@yc\relax% \divide\pgf@counta by\pgf@countb\relax% \pgf@y=\pgf@counta\pgf@yc\relax% \ifdim\pgf@y<\pgf@ya% \advance\pgf@y by\pgf@yc% \fi% \loop% horizontal lines \pgfsys@moveto{\pgfget{x}}{\pgfget{y}}% \pgfsys@lineto{\pgfget{xb}}{\pgfget{y}}% \advance\pgf@y by\pgf@yc% \ifdim\pgf@y<\pgf@yb% \repeat% \advance\pgf@y by-0.01pt\relax% \ifdim\pgf@y<\pgf@yb% \pgfsys@moveto{\pgfget{x}}{\pgfget{y}}% \pgfsys@lineto{\pgfget{xb}}{\pgfget{y}}% \fi% \pgf@counta=\pgf@x\relax% \pgf@countb=\pgf@xc\relax% \divide\pgf@counta by\pgf@countb\relax% \pgf@x=\pgf@counta\pgf@xc\relax% \ifdim\pgf@x<\pgf@xa% \advance\pgf@x by\pgf@xc% \fi% \loop% vertical lines \pgfsys@moveto{\pgfget{x}}{\pgfget{ya}}% \pgfsys@lineto{\pgfget{x}}{\pgfget{yb}}% \advance\pgf@x by\pgf@xc% \ifdim\pgf@x<\pgf@xb% \repeat% \advance\pgf@x by-0.01pt\relax% \ifdim\pgf@x<\pgf@xb% \pgfsys@moveto{\pgfget{x}}{\pgfget{ya}}% \pgfsys@lineto{\pgfget{x}}{\pgfget{yb}}% \fi% \pgfsys@stroke% \ignorespaces} % Object reuse % Internal box \newbox\pgfobjectbox % Define a pgf object for reuse. Such objects will be stored % efficiently internally. % % #1 = name for later reuse % #2 = lower left corner point of bounding box % #3 = upper right left corner point of bounding box % #4 = pure pgf code (nothing too fancy!) % % Description: % % Used to define reusable objects. The object must be composed of % basic pgf graphic primitives. Nothing fancy can be used. The % created object will be stored as an xform object in pdf or as a % postscript procedure in postscript. % % Example: % % \pgfdefobject{myrect}{\pgfpoint{-1pt}{-1pt}}{\pgfpoint{11pt}{11pt}} % {\pgfqmoveto{0}{0} % \pgfqmoveto{10}{0} % \pgfqmoveto{10}{10} % \pgfqmoveto{0}{10} % \pgfclosestroke} % % \begin{pgfpicture}{0cm}{0cm}{1cm}{1cm} % \pgfuseobject{myrect} % \end{pgfpicture} \def\pgfdefobject#1#2#3#4{\pgfsys@defobject{#1}{#2}{#3}{#4}\ignorespaces} % Use an object that was previously defined using pgfdefobject % % #1 = name of previously defined object % % Example: % % \pgfdefobject{myrect}{\pgfpoint{-1pt}{-1pt}}{\pgfpoint{11pt}{11pt}} % {\pgfqmoveto{0}{0} % \pgfqmoveto{10}{0} % \pgfqmoveto{10}{10} % \pgfqmoveto{0}{10} % \pgfclosestroke} % % \begin{pgfpicture}{0cm}{0cm}{1cm}{1cm} % \pgfuseobject{myrect} % \end{pgfpicture} \def\pgfuseobject#1{\pgfsys@useobject{#1}{}\ignorespaces} % Use an object that was previously defined using pgfdefobject, but % magnify the object by the current x and y register values % % #1 = name of previously defined object % % Example: % % \pgfdefobject{myrect}{\pgfpoint{-1pt}{-1pt}}{\pgfpoint{11pt}{11pt}} % {\pgfqmoveto{0}{0} % \pgfqmoveto{10}{0} % \pgfqmoveto{10}{10} % \pgfqmoveto{0}{10} % \pgfclosestroke} % % \begin{pgfpicture}{0cm}{0cm}{1cm}{1cm} % \pgf@x=2pt% Scale by factor two in x-direction % \pgf@y=2pt% Scale by factor two in y-direction % \pgfuseobjectmagnify{myrect} % \end{pgfpicture} \def\pgfuseobjectmagnify#1{% \pgfsys@useobject{#1}{\pgfsys@scale{\pgfget x}{\pgfget y}}\ignorespaces} % Coordinate systems % Internal registers \newdimen\pgf@xx \newdimen\pgf@xy \newdimen\pgf@yx \newdimen\pgf@yy \newdimen\pgf@zx \newdimen\pgf@zy % Store a value in polar-coordinates % % #1 = a degree % #2 = a radius % % x = #2 * cos(#1) % y = #2 * sin(#2) % % Example: % % % Create a slanted rectangle % % \pgfmoveto{\pgfpolar{30}{1cm}} \def\pgfpolar#1#2{\pgfsincos{#1}% \setlength{\pgf@xa}{#2}\pgf@bpcorr{\pgf@xa}% \pgf@ya=\pgf@xa\relax% \pgf@mult{\pgf@xa}{\pgfget x}{\pgf@xa}% \pgf@mult{\pgf@ya}{\pgfget y}{\pgf@ya}% \pgf@y=\pgf@xa\relax% \pgf@x=\pgf@ya\ignorespaces} % Store the vector #1 * x-vec + #2 * y-vec % % #1 = a factor for the x-vector % #2 = a factor fot the y-vector % % x = x-component of result vector % y = y-component of result vector % % Description: % % This command can be used to create a new coordinate system % without using the rotate/translate/scale commands. This % may be useful, if you do not want arrows and line width to % be scaled/transformed together with the coordinate system. % % Example: % % % Create a slanted rectangle % % \pgfsetxvec{\pgfpoint{1cm}{1cm}} % \pgfsetyvec{\pgfpoint{0cm}{1cm}} % % \pgfmoveto{\pgfxy(0,0)} % \pgflineto{\pgfxy(1,0)} % \pgflineto{\pgfxy(1,1)} % \pgflineto{\pgfxy(0,1)} % \pgfclosestroke \def\pgfxy(#1,#2){\pgf@x=#1\pgf@xx% \advance\pgf@x by #2\pgf@yx% \pgf@y=#1\pgf@xy% \advance\pgf@y by #2\pgf@yy} % Store the vector #1 * x-vec + #2 * y-vec + #3 * z-vec % % #1 = a factor for the x-vector % #2 = a factor fot the y-vector % #3 = a factor fot the z-vector % % x = x-component of result vector % y = y-component of result vector % % % Description: % % This command allows you to use a 3d coordinate system. % % % Example: % % % Draw a cubus % % \pgfline{\pgfxyz(0,0,0)}{\pgfxyz(0,0,1)} % \pgfline{\pgfxyz(0,1,0)}{\pgfxyz(0,1,1)} % \pgfline{\pgfxyz(1,0,0)}{\pgfxyz(1,0,1)} % \pgfline{\pgfxyz(1,1,0)}{\pgfxyz(1,1,1)} % \pgfline{\pgfxyz(0,0,0)}{\pgfxyz(0,1,0)} % \pgfline{\pgfxyz(0,0,1)}{\pgfxyz(0,1,1)} % \pgfline{\pgfxyz(1,0,0)}{\pgfxyz(1,1,0)} % \pgfline{\pgfxyz(1,0,1)}{\pgfxyz(1,1,1)} % \pgfline{\pgfxyz(0,0,0)}{\pgfxyz(1,0,0)} % \pgfline{\pgfxyz(0,0,1)}{\pgfxyz(1,0,1)} % \pgfline{\pgfxyz(0,1,0)}{\pgfxyz(1,1,0)} % \pgfline{\pgfxyz(0,1,1)}{\pgfxyz(1,1,1)} \def\pgfxyz(#1,#2,#3){\pgf@x=#1\pgf@xx% \advance\pgf@x by #2\pgf@yx% \advance\pgf@x by #3\pgf@zx% \pgf@y=#1\pgf@xy% \advance\pgf@y by #2\pgf@yy% \advance\pgf@y by #3\pgf@zy} % Set the x-vector % % #1 = a point the is the new x-vector % % Example: % % \pgfsetxvec{\pgfpoint{1cm}{0cm}} \def\pgfsetxvec#1{% \pgf@process{#1}% \pgf@xx=\pgf@x% \pgf@xy=\pgf@y% \ignorespaces} % Set the y-vector % % #1 = a point the is the new y-vector % % Example: % % \pgfsetyvec{\pgfpoint{0cm}{1cm}} \def\pgfsetyvec#1{% \pgf@process{#1}% \pgf@yx=\pgf@x% \pgf@yy=\pgf@y% \ignorespaces} % Set the z-vector % % #1 = a point the is the new z-vector % % Example: % % \pgfsetzvec{\pgfpoint{-0.385cm}{-0.385cm}} \def\pgfsetzvec#1{% \pgf@process{#1}% \pgf@zx=\pgf@x% \pgf@zy=\pgf@y% \ignorespaces} % Default values \pgfsetxvec{\pgfpoint{1cm}{0cm}} \pgfsetyvec{\pgfpoint{0cm}{1cm}} \pgfsetzvec{\pgfpoint{-0.385cm}{-0.385cm}} % Picture environment % % #1 = x-dimension of lower left corner % #2 = y-dimension of lower left corner % #3 = x-dimension of upper right corner % #4 = y-dimension of upper right corner % % Example: % % \begin{pgfpicture}{-2cm}{-2cm}{2cm}{2cm}% % \pgfrect[stroke]{\pgfxy(-2,0)}{\pgfxy(1,1)} % \pgfrect[stroke]{\pgfxy(1,0)}{\pgfxy(1,1)} % % \pgfsetendarrow{\pgfarrowto} % \pgfline{\pgfxy(-0.9,0.2)}{\pgfxy(0.9,0.4)} % \pgfline{\pgfxy(0.9,0.6)}{\pgfxy(-0.9,0.8)} % \end{pgfpicture} \def\pgfpicture#1#2#3#4{% \setlength\pgf@xa{#3}% \setlength\pgf@x{#1}% \advance\pgf@xa by-\pgf@x\relax% \setlength\pgf@ya{#4}% \setlength\pgf@y{#2}% \advance\pgf@ya by-\pgf@y\relax% \setbox\pgfpic\hb@xt@\pgf@xa\bgroup \hskip-\pgf@x\relax% \lower\pgf@y\hbox\bgroup% \pgfsys@openpicture% \pgfsetlinewidth{0.4pt}% \color{.}% \pgfex=1ex\pgfem=1em% no longer needed \let\pgf@setlengthorig=\setlength% \let\pgf@addtolengthorig=\addtolength% \let\setlength=\pgf@setlength% \let\addtolength=\pgf@addtolength% \nullfont\spaceskip\z@\xspaceskip\z@} \def\endpgfpicture{\pgfsys@closepicture% \egroup\hss\egroup \ht\pgfpic\pgf@ya\dp\pgfpic\z@ \mbox{\box\pgfpic}} % Boxed Picture environment % % #1 = x-dimension of lower left corner % #2 = y-dimension of lower left corner % #3 = x-dimension of upper right corner % #4 = y-dimension of upper right corner % % % Description: % % Draws a box around the picture. Useful for fitting the size. % % % Example: % % \begin{pgfpictureboxed}{-2cm}{-2cm}{2cm}{2cm}% % \pgfrect[stroke]{\pgfxy(-2,0)}{\pgfxy(1,1)} % \pgfrect[stroke]{\pgfxy(1,0)}{\pgfxy(1,1)} % % \pgfsetendarrow{\pgfarrowto} % \pgfline{\pgfxy(-0.9,0.2)}{\pgfxy(0.9,0.4)} % \pgfline{\pgfxy(0.9,0.6)}{\pgfxy(-0.9,0.8)} % \end{pgfpictureboxed} \def\pgfpictureboxed#1#2#3#4{% \pgfpicture{#1}{#2}{#3}{#4}% \pgfmoveto{\pgfpoint{#1}{#2}}% \pgflineto{\pgfpoint{#1}{#4}}% \pgflineto{\pgfpoint{#3}{#4}}% \pgflineto{\pgfpoint{#3}{#2}}% \pgfclosestroke\ignorespaces} \def\endpgfpictureboxed{\endpgfpicture} % Translation and rotation % Magnification environment % % #1 = x magnification factor % #2 = y magnification factor % % Example: % % \begin{pgfmagnify}{2}{2} % \pgfline{\pgforigin}{\pgfxy(1,0)} % \end{pgfmagnify} \def\pgfmagnify#1#2{% \pgfscope\pgfsys@scale{#1}{#2}\ignorespaces} \def\endpgfmagnify{\endpgfscope\ignorespacesafterend\ignorespaces} % Translation environment % % #1 = new origin % % Example: % % \begin{pgftranslate}{\pgfpoint{0cm}{1cm}} % \pgfline{\pgforigin}{\pgfxy(1,0)} % \end{pgftranslate} \def\pgftranslate#1{% \pgf@process{#1}% \pgfscope\pgfsys@translate{\pgfget x}{\pgfget y}\ignorespaces} \def\endpgftranslate{\endpgfscope\ignorespacesafterend\ignorespaces} % Translation command % % #1 = new origin % % Example: % % \pgftranslateto{\pgfpoint{0cm}{1cm}} \def\pgftranslateto#1{% \pgf@process{#1}% \pgfsys@translate{\pgfget x}{\pgfget y}\ignorespaces} % Rotation environment % % #1 = sin/cos of rotation degree (use \pgfdegree) % % Example: % % \begin{pgfrotateby}{\pgfdegree{30}} % \pgfline{\pgforigin}{\pgfxy(1,0)} % \end{pgfrotateby} \def\pgfrotateby#1{% \pgfscope% \pgf@process{#1}% \pgf@xa=-\pgf@x% \pgfsys@transform{\pgfget y}{\pgfget x}{\pgfget{xa}}{\pgfget y}% {0}{0}\ignorespaces} \def\endpgfrotateby{\endpgfscope\ignorespacesafterend\ignorespaces} % Put something at a given location % % #1 = place where to put an object % % Example: % % \pgfputat{\pgfxy(1,0)}{\pgfbox[center,center]{Hello world}} \long\def\pgfputat#1#2{% \begin{pgftranslate}{#1}#2\end{pgftranslate}\ignorespaces} % Declare an image % % #1 = optional argument: width, height, page specification % #2 = name of the image for later use % #4 = filename without extension, automatic extensions are .pdf, % .jpg, and .png for PDF and .ps, .eps, .epsi for postscript. % % Description: % % This command declares an image file for later use. Even if the image % is used several times in the document, in PDF it will only be stored % once. % % Example: % % \pgfdeclareimage[width=2cm,page=2]{myimage}{imagefilename} \newcommand\pgfdeclareimage[3][]{% \setkeys{pgfimage}{height=,width=,page=,interpolate=false,mask=}% defaults \setkeys{pgfimage}{#1}% % Try to find the file \gdef\pgf@filename{}% % If page= parameter is not empty, try that file first: \ifx\pgf@imagepage\@empty% \else% \expandafter\pgf@findfile\pgfsys@imagesuffixlist:+{#3.page\pgf@imagepage}% \fi% \ifx\pgf@filename\@empty% \expandafter\pgf@findfile\pgfsys@imagesuffixlist:+{#3}% \else% \setkeys{pgfimage}{page=}% make page empty \fi% \ifx\pgf@filename\@empty% \PackageWarning{pgf}% {File "#3" not found when defining image "#2".\MessageBreak Tried all extensions in "\pgfsys@imagesuffixlist"}% \pgf@declaredraftimage{#2}% \else% \ifpgf@draftmode% \pgf@declaredraftimage{#2}% \else% \pgfsys@defineimage% \fi% \fi% \expandafter\global\expandafter\let\csname pgf@image@#2!\endcsname=\pgf@image% } \define@key{pgfimage}{width}{\edef\pgf@imagewidth{#1}} \define@key{pgfimage}{height}{\edef\pgf@imageheight{#1}} \define@key{pgfimage}{page}{\edef\pgf@imagepage{#1}} \define@key{pgfimage}{interpolate}[true]{\edef\pgf@imageinterpolate{/Interpolate #1}} \define@key{pgfimage}{mask}{% \edef\pgf@imagemask{#1}% \ifx\pgf@imagemask\@empty% \else% \@ifundefined{pgf@mask@#1}% {\PackageError{pgf}{Undefined mask "#1".}{}% \edef\pgf@imagemask{}}% {\edef\pgf@imagemask{\csname pgf@mask@#1\endcsname}% \ifx\pgf@imagemask\@empty% \else \edef\pgf@imagemask{/SMask \pgf@imagemask\space 0 R}% \fi}% \fi} \def\pgf@findfile#1:#2+#3{% \IfFileExists{#3.#1}% {\xdef\pgf@filename{#3.#1}}% {\def\pgf@mightbeempty{#2}% \ifx\pgf@mightbeempty\@empty\else% \pgf@findfile#2+{#3}% \fi}} \def\pgf@declaredraftimage#1{% \ifx\pgf@imagewidth\@empty% \PackageWarning{pgf}{Missing width for image "#1" in draft mode.\MessageBreak Using 1cm instead}% \edef\pgf@imagewidth{1cm}% \fi% \ifx\pgf@imageheight\@empty% \PackageWarning{pgf}{Missing height for image "#1" in draft mode.\MessageBreak Using 1cm instead}% \edef\pgf@imageheight{1cm}% \fi% \ifx\pgf@imagepage\@empty\else\edef\pgf@imagepagetext{ page \pgf@imagepagetext}\fi% \edef\pgf@image{% \hbox to \pgf@imagewidth{% \vrule\kern-0.4pt% \vbox to \pgf@imageheight{% \hrule\vfil% \hbox to \pgf@imagewidth{\hskip-10cm\hfil\noexpand\tiny#1\pgf@imagepage\hfil\hskip-10cm}% \vfil\hrule}% \kern-0.4pt\vrule}% }% } % Declare a soft mask % % #1 = optional argument: matte specification. default matte is % white. % #2 = name of the mask for later use % #3 = filename without extension, automatic extensions are .pdf, % .jpg, and .png for PDF. Postscript is not supported. % % Description: % % This command declares a soft mask for later masking an image. The % declared mask should be used together with an image of exactly the % same height/width if matte is defined. Matte should be the % preblended background color (see pdf spec for details). % % Example: % % \pgfdeclaremask[matte=white]{maskname}{maskfilename} % \pgfdeclareimage[mask=maskname]{image}{imagefilename} \newcommand\pgfdeclaremask[3][]{% \setkeys{pgfmask}{matte={1 1 1}}% defaults \setkeys{pgfmask}{#1}% \def\pgf@mask{}% % Try to find the file \gdef\pgf@filename{}% \expandafter\pgf@findfile\pgfsys@imagesuffixlist:+{#3}% \ifx\pgf@filename\@empty% \PackageWarning{pgf}% {File "#3" not found when defining mask "#2".\MessageBreak Tried all extensions in "\pgfsys@imagesuffixlist"}% \else% \pgfsys@definemask% \fi% \expandafter\global\expandafter\let\csname pgf@mask@#2\endcsname=\pgf@mask% } \define@key{pgfmask}{matte}{\edef\pgf@maskmatte{#1}} % Create an alias name for an image % % #1 = name of the alias % #2 = name of the original % % Example: % % \pgfdeclareimage{image}{1cm}{1cm}{filename % \pgfaliasimage{alias}{image} % \pgfuseimage{alias} \def\pgfaliasimage#1#2{% \expandafter\global\expandafter\let\expandafter\pgf@temp\expandafter=\csname pgf@image@#2!\endcsname% \expandafter\global\expandafter\let\csname pgf@image@#1!\endcsname=\pgf@temp% } % Use an image % % #1 = name of a previously declared image % % Example: % % \pgfputat{\pgforigin}{\pgfbox[left,base]{\pgfuseimage{myimage}}} \def\pgfuseimage#1{% \def\pgf@imagename{pgf@image@#1}% \pgf@tryextensions{\pgf@imagename}{\pgfalternateextension}% \expandafter\@ifundefined\expandafter{\pgf@imagename}% {\PackageError{pgf}{Undefined image "#1"}{}}% {{\leavevmode\csname\pgf@imagename\endcsname}}} \def\pgf@tryextensions#1#2{% \edef\pgf@args{[#2!]}\expandafter\pgf@@tryextensions\pgf@args{#1}} \def\pgf@@tryextensions[#1!#2]#3{% \expandafter\@ifundefined\expandafter{#3.#1!#2}% {\def\pgf@temp{#2}% \ifx\pgf@temp\@empty% \edef#3{#3!}% \else% \pgf@@tryextensions[#2]{#3}% \fi}% {\edef#3{#3.#1!#2}}} % Alternate image % % Description: % % When an image is used, pgf first attempts to use the image with the % alternate extension added. If this fails, the original image is % used. If the alternate extension contains ``!'', then the text up to % the ! is successively removed and the remainder is tried as an % alternate extension. % % Example: % % \def\pgfalternateextension{20!white} \def\pgfalternateextension{} % Directly insert an image % % #1 = optional argument: width, height, page specification % #2 = file name % % Description: % % Directly inserts an image without declaration. You can, however, % still access this image using the name pgflastimage. By using % pgfaliasimage, you can also save this image for later. % % Example: % % \pgfimage[height=2cm]{filename} \newcommand\pgfimage[2][]{% \pgfdeclareimage[#1]{pgflastimage}{#2}% \pgfuseimage{pgflastimage}} % Mathematical stuff % Internal registers \newcount\pgf@counta \newcount\pgf@countb % Internal setting function \def\pgf@setmath#1#2{\edef\pgf@temp{#2pt}\csname pgf@#1\endcsname=\pgf@temp} % Convert a degree into a sin/cos pair % % #1 = degree % % x = sin of #1 % y = cos of #1 % % Example: % % \begin{pgffrotateby}{\pgfdegree{30}} % \pgfline{\pgforigin}{\pgfxy(1,0)} % \end{pgfrotateby} \def\pgfdegree#1{\pgfsincos{#1}\ignorespaces} % Calculate sin of a degree % % #1 = degree % % x = sin of #1 % % Example: % % \pgfsin{30} \def\pgfsin#1{% \pgf@counta=#1\relax% \pgf@countb=90% \advance\pgf@countb by-\pgf@counta% \ifnum\pgf@countb>179% \advance\pgf@countb by-360% \else% \ifnum\pgf@countb<-179% \advance\pgf@countb by360% \fi\fi% \ifnum\pgf@countb<0\relax% \pgf@countb=-\pgf@countb% \fi% \pgf@setmath{x}{\csname pgf@cos\the\pgf@countb\endcsname}} % Calculate cos of a degree % % #1 = degree % % x = cos of #1 % % Example: % % \pgfcos{30} \def\pgfcos#1{% \pgf@counta=#1\relax% \ifnum\pgf@counta>179% \advance\pgf@counta by-360% \else% \ifnum\pgf@counta<-179% \advance\pgf@counta by360% \fi\fi% \ifnum\pgf@counta<0\relax% \pgf@counta=-\pgf@counta% \fi% \pgf@setmath{x}{\csname pgf@cos\the\pgf@counta\endcsname}} % Calculate sin and cos of a degree % % #1 = degree % % x = cos of #1 % y = sin of #1 % % Example: % % \pgfcos{30} \def\pgfsincos#1{% \pgf@counta=#1\relax% \ifnum\pgf@counta>179% \advance\pgf@counta by-360% \else% \ifnum\pgf@counta<-179% \advance\pgf@counta by360% \fi\fi\relax% \pgf@countb=\pgf@counta\relax% \ifnum\pgf@counta<0\relax% \pgf@counta=-\pgf@counta% \fi\relax% \pgf@setmath{y}{\csname pgf@cos\the\pgf@counta\endcsname}% \pgf@counta=90% \advance\pgf@counta by-\pgf@countb\relax% \ifnum\pgf@counta>179% \advance\pgf@counta by-360% \else% \ifnum\pgf@counta<-179% \advance\pgf@counta by360% \fi\fi\relax% \ifnum\pgf@counta<0\relax% \pgf@counta=-\pgf@counta% \fi\relax% \pgf@setmath{x}{\csname pgf@cos\the\pgf@counta\endcsname}} % Normalise a point. % % #1 = point with coordinates (a,b) % % x = a/\sqrt(a*a+b*b) % y = b/\sqrt(a*a+b*b) % % Example: % % \pgfnormalise{\pgfxy(2,1)} \def\pgfnormalise#1{% \pgf@process{#1}% \pgf@xa=\pgf@x% \pgf@ya=\pgf@y% \ifnum\pgf@x<0\relax% move into first quadrant \pgf@x=-\pgf@x% \fi% \ifnum\pgf@y<0\relax% \pgf@y=-\pgf@y% \fi% \ifnum\pgf@x>\pgf@y% x > y \pgf@counta=\pgf@x% \pgf@countb=\pgf@y% \multiply\pgf@countb by 100% \ifnum\pgf@counta<4096\relax% \pgf@x=1pt\relax% \pgf@y=0pt\relax% \else% \divide\pgf@countb by \pgf@counta% \pgf@setmath{x}{\csname pgf@cosfrac\the\pgf@countb\endcsname}% \divide\pgf@counta by 4096% \pgf@y=16\pgf@ya% \divide\pgf@y by \pgf@counta% \pgf@mult{\pgf@y}{\pgfget x}{\pgf@y}% \fi% \ifnum\pgf@xa<0\relax% \pgf@x=-\pgf@x% \fi% \else% x <= y \pgf@counta=\pgf@y% \pgf@countb=\pgf@x% \multiply\pgf@countb by 100% \ifnum\pgf@counta<4096\relax% \pgf@y=1pt\relax% \pgf@x=0pt\relax% \else% \divide\pgf@countb by \pgf@counta% \pgf@setmath{y}{\csname pgf@cosfrac\the\pgf@countb\endcsname}% \divide\pgf@counta by 4096% \pgf@x=16\pgf@xa% \divide\pgf@x by \pgf@counta% \pgf@mult{\pgf@x}{\pgfget y}{\pgf@x}% \fi% \ifnum\pgf@ya<0\relax% \pgf@y=-\pgf@y% \fi% \fi\ignorespaces} % Internal function \def\pgf@mul#1#2#3{#2=#1#3} \def\pgf@mult#1#2#3{\edef\pgf@temp{{#2}}\expandafter\pgf@mul\pgf@temp{#1}{#3}} % Internal tables \def\pgf@def#1#2#3{\expandafter\def\csname pgf@#1#2\endcsname{#3}} \pgf@def{cos}{0}{1} \pgf@def{cos}{1}{0.999848} \pgf@def{cos}{2}{0.999391} \pgf@def{cos}{3}{0.99863} \pgf@def{cos}{4}{0.997564} \pgf@def{cos}{5}{0.996195} \pgf@def{cos}{6}{0.994522} \pgf@def{cos}{7}{0.992546} \pgf@def{cos}{8}{0.990268} \pgf@def{cos}{9}{0.987688} \pgf@def{cos}{10}{0.984808} \pgf@def{cos}{11}{0.981627} \pgf@def{cos}{12}{0.978148} \pgf@def{cos}{13}{0.97437} \pgf@def{cos}{14}{0.970296} \pgf@def{cos}{15}{0.965926} \pgf@def{cos}{16}{0.961262} \pgf@def{cos}{17}{0.956305} \pgf@def{cos}{18}{0.951057} \pgf@def{cos}{19}{0.945519} \pgf@def{cos}{20}{0.939693} \pgf@def{cos}{21}{0.93358} \pgf@def{cos}{22}{0.927184} \pgf@def{cos}{23}{0.920505} \pgf@def{cos}{24}{0.913545} \pgf@def{cos}{25}{0.906308} \pgf@def{cos}{26}{0.898794} \pgf@def{cos}{27}{0.891007} \pgf@def{cos}{28}{0.882948} \pgf@def{cos}{29}{0.87462} \pgf@def{cos}{30}{0.866025} \pgf@def{cos}{31}{0.857167} \pgf@def{cos}{32}{0.848048} \pgf@def{cos}{33}{0.838671} \pgf@def{cos}{34}{0.829038} \pgf@def{cos}{35}{0.819152} \pgf@def{cos}{36}{0.809017} \pgf@def{cos}{37}{0.798636} \pgf@def{cos}{38}{0.788011} \pgf@def{cos}{39}{0.777146} \pgf@def{cos}{40}{0.766044} \pgf@def{cos}{41}{0.75471} \pgf@def{cos}{42}{0.743145} \pgf@def{cos}{43}{0.731354} \pgf@def{cos}{44}{0.71934} \pgf@def{cos}{45}{0.707107} \pgf@def{cos}{46}{0.694658} \pgf@def{cos}{47}{0.681998} \pgf@def{cos}{48}{0.669131} \pgf@def{cos}{49}{0.656059} \pgf@def{cos}{50}{0.642788} \pgf@def{cos}{51}{0.62932} \pgf@def{cos}{52}{0.615661} \pgf@def{cos}{53}{0.601815} \pgf@def{cos}{54}{0.587785} \pgf@def{cos}{55}{0.573576} \pgf@def{cos}{56}{0.559193} \pgf@def{cos}{57}{0.544639} \pgf@def{cos}{58}{0.529919} \pgf@def{cos}{59}{0.515038} \pgf@def{cos}{60}{0.5} \pgf@def{cos}{61}{0.48481} \pgf@def{cos}{62}{0.469472} \pgf@def{cos}{63}{0.45399} \pgf@def{cos}{64}{0.438371} \pgf@def{cos}{65}{0.422618} \pgf@def{cos}{66}{0.406737} \pgf@def{cos}{67}{0.390731} \pgf@def{cos}{68}{0.374607} \pgf@def{cos}{69}{0.358368} \pgf@def{cos}{70}{0.34202} \pgf@def{cos}{71}{0.325568} \pgf@def{cos}{72}{0.309017} \pgf@def{cos}{73}{0.292372} \pgf@def{cos}{74}{0.275637} \pgf@def{cos}{75}{0.258819} \pgf@def{cos}{76}{0.241922} \pgf@def{cos}{77}{0.224951} \pgf@def{cos}{78}{0.207912} \pgf@def{cos}{79}{0.190809} \pgf@def{cos}{80}{0.173648} \pgf@def{cos}{81}{0.156434} \pgf@def{cos}{82}{0.139173} \pgf@def{cos}{83}{0.121869} \pgf@def{cos}{84}{0.104528} \pgf@def{cos}{85}{0.0871557} \pgf@def{cos}{86}{0.0697565} \pgf@def{cos}{87}{0.052336} \pgf@def{cos}{88}{0.0348995} \pgf@def{cos}{89}{0.0174524} \pgf@def{cos}{90}{0} \pgf@def{cos}{91}{-0.0174524} \pgf@def{cos}{92}{-0.0348995} \pgf@def{cos}{93}{-0.052336} \pgf@def{cos}{94}{-0.0697565} \pgf@def{cos}{95}{-0.0871557} \pgf@def{cos}{96}{-0.104528} \pgf@def{cos}{97}{-0.121869} \pgf@def{cos}{98}{-0.139173} \pgf@def{cos}{99}{-0.156434} \pgf@def{cos}{100}{-0.173648} \pgf@def{cos}{101}{-0.190809} \pgf@def{cos}{102}{-0.207912} \pgf@def{cos}{103}{-0.224951} \pgf@def{cos}{104}{-0.241922} \pgf@def{cos}{105}{-0.258819} \pgf@def{cos}{106}{-0.275637} \pgf@def{cos}{107}{-0.292372} \pgf@def{cos}{108}{-0.309017} \pgf@def{cos}{109}{-0.325568} \pgf@def{cos}{110}{-0.34202} \pgf@def{cos}{111}{-0.358368} \pgf@def{cos}{112}{-0.374607} \pgf@def{cos}{113}{-0.390731} \pgf@def{cos}{114}{-0.406737} \pgf@def{cos}{115}{-0.422618} \pgf@def{cos}{116}{-0.438371} \pgf@def{cos}{117}{-0.45399} \pgf@def{cos}{118}{-0.469472} \pgf@def{cos}{119}{-0.48481} \pgf@def{cos}{120}{-0.5} \pgf@def{cos}{121}{-0.515038} \pgf@def{cos}{122}{-0.529919} \pgf@def{cos}{123}{-0.544639} \pgf@def{cos}{124}{-0.559193} \pgf@def{cos}{125}{-0.573576} \pgf@def{cos}{126}{-0.587785} \pgf@def{cos}{127}{-0.601815} \pgf@def{cos}{128}{-0.615661} \pgf@def{cos}{129}{-0.62932} \pgf@def{cos}{130}{-0.642788} \pgf@def{cos}{131}{-0.656059} \pgf@def{cos}{132}{-0.669131} \pgf@def{cos}{133}{-0.681998} \pgf@def{cos}{134}{-0.694658} \pgf@def{cos}{135}{-0.707107} \pgf@def{cos}{136}{-0.71934} \pgf@def{cos}{137}{-0.731354} \pgf@def{cos}{138}{-0.743145} \pgf@def{cos}{139}{-0.75471} \pgf@def{cos}{140}{-0.766044} \pgf@def{cos}{141}{-0.777146} \pgf@def{cos}{142}{-0.788011} \pgf@def{cos}{143}{-0.798636} \pgf@def{cos}{144}{-0.809017} \pgf@def{cos}{145}{-0.819152} \pgf@def{cos}{146}{-0.829038} \pgf@def{cos}{147}{-0.838671} \pgf@def{cos}{148}{-0.848048} \pgf@def{cos}{149}{-0.857167} \pgf@def{cos}{150}{-0.866025} \pgf@def{cos}{151}{-0.87462} \pgf@def{cos}{152}{-0.882948} \pgf@def{cos}{153}{-0.891007} \pgf@def{cos}{154}{-0.898794} \pgf@def{cos}{155}{-0.906308} \pgf@def{cos}{156}{-0.913545} \pgf@def{cos}{157}{-0.920505} \pgf@def{cos}{158}{-0.927184} \pgf@def{cos}{159}{-0.93358} \pgf@def{cos}{160}{-0.939693} \pgf@def{cos}{161}{-0.945519} \pgf@def{cos}{162}{-0.951057} \pgf@def{cos}{163}{-0.956305} \pgf@def{cos}{164}{-0.961262} \pgf@def{cos}{165}{-0.965926} \pgf@def{cos}{166}{-0.970296} \pgf@def{cos}{167}{-0.97437} \pgf@def{cos}{168}{-0.978148} \pgf@def{cos}{169}{-0.981627} \pgf@def{cos}{170}{-0.984808} \pgf@def{cos}{171}{-0.987688} \pgf@def{cos}{172}{-0.990268} \pgf@def{cos}{173}{-0.992546} \pgf@def{cos}{174}{-0.994522} \pgf@def{cos}{175}{-0.996195} \pgf@def{cos}{176}{-0.997564} \pgf@def{cos}{177}{-0.99863} \pgf@def{cos}{178}{-0.999391} \pgf@def{cos}{179}{-0.999848} \pgf@def{cos}{180}{-1} \pgf@def{cosfrac}{0}{1} \pgf@def{cosfrac}{1}{0.99995} \pgf@def{cosfrac}{2}{0.9998} \pgf@def{cosfrac}{3}{0.99955} \pgf@def{cosfrac}{4}{0.999201} \pgf@def{cosfrac}{5}{0.998752} \pgf@def{cosfrac}{6}{0.998205} \pgf@def{cosfrac}{7}{0.997559} \pgf@def{cosfrac}{8}{0.996815} \pgf@def{cosfrac}{9}{0.995974} \pgf@def{cosfrac}{10}{0.995037} \pgf@def{cosfrac}{11}{0.994004} \pgf@def{cosfrac}{12}{0.992877} \pgf@def{cosfrac}{13}{0.991656} \pgf@def{cosfrac}{14}{0.990342} \pgf@def{cosfrac}{15}{0.988936} \pgf@def{cosfrac}{16}{0.987441} \pgf@def{cosfrac}{17}{0.985856} \pgf@def{cosfrac}{18}{0.984183} \pgf@def{cosfrac}{19}{0.982424} \pgf@def{cosfrac}{20}{0.980581} \pgf@def{cosfrac}{21}{0.978653} \pgf@def{cosfrac}{22}{0.976644} \pgf@def{cosfrac}{23}{0.974555} \pgf@def{cosfrac}{24}{0.972387} \pgf@def{cosfrac}{25}{0.970143} \pgf@def{cosfrac}{26}{0.967823} \pgf@def{cosfrac}{27}{0.965429} \pgf@def{cosfrac}{28}{0.962964} \pgf@def{cosfrac}{29}{0.960429} \pgf@def{cosfrac}{30}{0.957826} \pgf@def{cosfrac}{31}{0.955157} \pgf@def{cosfrac}{32}{0.952424} \pgf@def{cosfrac}{33}{0.949629} \pgf@def{cosfrac}{34}{0.946773} \pgf@def{cosfrac}{35}{0.943858} \pgf@def{cosfrac}{36}{0.940887} \pgf@def{cosfrac}{37}{0.937862} \pgf@def{cosfrac}{38}{0.934784} \pgf@def{cosfrac}{39}{0.931655} \pgf@def{cosfrac}{40}{0.928477} \pgf@def{cosfrac}{41}{0.925252} \pgf@def{cosfrac}{42}{0.921982} \pgf@def{cosfrac}{43}{0.918669} \pgf@def{cosfrac}{44}{0.915315} \pgf@def{cosfrac}{45}{0.911922} \pgf@def{cosfrac}{46}{0.90849} \pgf@def{cosfrac}{47}{0.905024} \pgf@def{cosfrac}{48}{0.901523} \pgf@def{cosfrac}{49}{0.89799} \pgf@def{cosfrac}{50}{0.894427} \pgf@def{cosfrac}{51}{0.890835} \pgf@def{cosfrac}{52}{0.887217} \pgf@def{cosfrac}{53}{0.883573} \pgf@def{cosfrac}{54}{0.879905} \pgf@def{cosfrac}{55}{0.876216} \pgf@def{cosfrac}{56}{0.872506} \pgf@def{cosfrac}{57}{0.868777} \pgf@def{cosfrac}{58}{0.865031} \pgf@def{cosfrac}{59}{0.861269} \pgf@def{cosfrac}{60}{0.857493} \pgf@def{cosfrac}{61}{0.853704} \pgf@def{cosfrac}{62}{0.849903} \pgf@def{cosfrac}{63}{0.846092} \pgf@def{cosfrac}{64}{0.842271} \pgf@def{cosfrac}{65}{0.838444} \pgf@def{cosfrac}{66}{0.834609} \pgf@def{cosfrac}{67}{0.83077} \pgf@def{cosfrac}{68}{0.826927} \pgf@def{cosfrac}{69}{0.82308} \pgf@def{cosfrac}{70}{0.819232} \pgf@def{cosfrac}{71}{0.815383} \pgf@def{cosfrac}{72}{0.811534} \pgf@def{cosfrac}{73}{0.807687} \pgf@def{cosfrac}{74}{0.803842} \pgf@def{cosfrac}{75}{0.8} \pgf@def{cosfrac}{76}{0.796162} \pgf@def{cosfrac}{77}{0.792329} \pgf@def{cosfrac}{78}{0.788502} \pgf@def{cosfrac}{79}{0.784682} \pgf@def{cosfrac}{80}{0.780869} \pgf@def{cosfrac}{81}{0.777064} \pgf@def{cosfrac}{82}{0.773268} \pgf@def{cosfrac}{83}{0.769481} \pgf@def{cosfrac}{84}{0.765705} \pgf@def{cosfrac}{85}{0.761939} \pgf@def{cosfrac}{86}{0.758185} \pgf@def{cosfrac}{87}{0.754443} \pgf@def{cosfrac}{88}{0.750714} \pgf@def{cosfrac}{89}{0.746997} \pgf@def{cosfrac}{90}{0.743294} \pgf@def{cosfrac}{91}{0.739605} \pgf@def{cosfrac}{92}{0.735931} \pgf@def{cosfrac}{93}{0.732272} \pgf@def{cosfrac}{94}{0.728628} \pgf@def{cosfrac}{95}{0.724999} \pgf@def{cosfrac}{96}{0.721387} \pgf@def{cosfrac}{97}{0.717792} \pgf@def{cosfrac}{98}{0.714213} \pgf@def{cosfrac}{99}{0.710651} \pgf@def{cosfrac}{100}{0.707107} \endinput semantik-0.9.5/src/templates/beamer/beamermindist/pgfshade.sty000664 000000 000000 00000040630 12732552614 024517 0ustar00rootroot000000 000000 \ProvidesPackage{pgfshade}[2004/10/08 ver 0.64] % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the LaTeX Project Public License Distributed from CTAN % archives in directory macros/latex/base/lppl.txt. \RequirePackage{pgf} \RequirePackage{xxcolor} \DeclareOption{pdf} { \def\pgfsys@horishading#1#2#3{% {% \pgf@parsefunc{#3}% \setbox\pgf@tempbox=\hbox to\pgf@max{\vbox to#2{\vfil\pdfliteral{/Sh sh}}\hfil}% \pgf@process{\pgfpoint{\pgf@max}{#2}}% \pdfxform resources {% /Shading << /Sh << /ShadingType 2 /ColorSpace /DeviceRGB /Domain [\pgf@doma\space\pgf@domb] /Coords [\pgf@doma\space0 \pgf@domb\space0] /Function \pgf@pdfparsedfunction /Extend [false false] >> >>}\pgf@tempbox% \expandafter\xdef\csname @pgfshading#1!\endcsname{\noexpand\pdfrefxform\the\pdflastxform}% }% } \def\pgfsys@vertshading#1#2#3{% {% \pgf@parsefunc{#3}% \setbox\pgf@tempbox=\hbox to#2{\vbox to\pgf@max{\vfil\pdfliteral{/Sh sh}}\hfil}% \pgf@process{\pgfpoint{#2}{\pgf@max}}% \pdfxform resources {% /Shading << /Sh << /ShadingType 2 /ColorSpace /DeviceRGB /Domain [\pgf@doma\space\pgf@domb] /Coords [0 \pgf@doma\space0 \pgf@domb] /Function \pgf@pdfparsedfunction /Extend [false false] >> >>}\pgf@tempbox% \expandafter\xdef\csname @pgfshading#1!\endcsname{\noexpand\pdfrefxform\the\pdflastxform}% }% } \def\pgfsys@radialshading#1#2#3{% {% \pgf@parsefunc{#3}% \setbox\pgf@tempbox=\hbox to2\pgf@max{\vbox to2\pgf@max{\vfil\pdfliteral{/Sh sh}}\hfil}% \pgf@process{#2}% \pgf@xa=\pgf@x% \pgf@ya=\pgf@y% \pgf@process{\pgfpoint{\pgf@max}{\pgf@max}}% \advance\pgf@xa by \pgf@x% \advance\pgf@ya by \pgf@y% \pdfxform resources {% /Shading << /Sh << /ShadingType 3 /ColorSpace /DeviceRGB /Domain [\pgf@doma\space\pgf@domb] /Coords [\pgfget{xa} \pgfget{ya} \pgf@doma\space \pgfget x \pgfget y \pgf@domb] /Function \pgf@pdfparsedfunction /Extend [true false] >> >>}\pgf@tempbox% \expandafter\xdef\csname @pgfshading#1!\endcsname{\noexpand\pdfrefxform\the\pdflastxform}% }% }% } \DeclareOption{postscript} { \def\pgfsys@horishading#1#2#3{% {% \pgf@parsefunc{#3}% \pgf@x=#2\relax% \pgf@bpcorr{\pgf@x}% \expandafter\xdef\csname @pgfshading#1!\endcsname{\hbox{% \noexpand\begin{pgfpicture}{0pt}{0pt}{\the\pgf@max}{#2}% \noexpand\pgfrect[clip]{\pgforigin}{\pgfpoint{\the\pgf@max}{#2}}% \noexpand\pgf@ps{\pgf@domb\space \pgfget{x} pgfH \pgf@psfuncs\space pop}% \noexpand\end{pgfpicture}}}% }% } \def\pgfsys@vertshading#1#2#3{% {% \pgf@parsefunc{#3}% \pgf@x=#2\relax% \pgf@bpcorr{\pgf@x}% \expandafter\xdef\csname @pgfshading#1!\endcsname{\hbox{% \noexpand\begin{pgfpicture}{0pt}{0pt}{#2}{\the\pgf@max}% \noexpand\pgfrect[clip]{\pgforigin}{\pgfpoint{#2}{\the\pgf@max}}% \noexpand\pgf@ps{\pgf@domb\space \pgfget{x} pgfV \pgf@psfuncs\space pop}% \noexpand\end{pgfpicture}}}% }% } \def\pgfsys@radialshading#1#2#3{% {% \pgf@parsefunc{#3}% \pgf@process{#2}% \pgf@xa=2\pgf@max% \pgf@bpcorr{\pgf@max}% \advance\pgf@x by \pgf@max% \advance\pgf@y by \pgf@max% \expandafter\xdef\csname @pgfshading#1!\endcsname{\hbox{% \noexpand\begin{pgfpicture}{0pt}{0pt}{\the\pgf@xa}{\the\pgf@xa}% \noexpand\pgf@ps{% \pgf@domb\space \pgfget{y} \pgfget{x} \pgfget{max} pgfR1 \pgf@psfuncs\space \pgf@firstcolor\space \pgf@doma\space pgfR2}% \noexpand\end{pgfpicture}}}% }% } % Parameters to horizontal pre axishade: \pgf@domb x \special{! /pgfH{% /pgfheight exch def 0.75 setlinewidth [] 0 setdash /pgfshade {pgfA} def /pgfdir { dup 0 moveto dup 5 index lineto } bind def} B}% % Parameters to vertical pre axishade: \pgf@domb x \special{! /pgfV{% /pgfheight exch def 0.75 setlinewidth [] 0 setdash /pgfshade {pgfA} def /pgfdir { dup 0 exch moveto dup 5 index exch lineto } bind def} B}% % Parameters to axishade: end x, start x, r-, g-, b- of first color, r-, g-, b- of second color % Stack afterwards: end x \special{! /pgfA{ /pgfdiff 8 index round cvi 8 index round cvi sub 2 mul 1 add def 2 index 6 index sub pgfdiff div % put red-step on stack 2 index 6 index sub pgfdiff div % put green-step on stack 2 index 6 index sub pgfdiff div % put green-step on stack pgfheight 9 index 9 index 9 index 14 index pgfdiff { 3 index 3 index 3 index setrgbcolor % Set color pgfdir stroke 4 -1 roll 7 index add % red += incred 4 -1 roll 6 index add % green += incgreen 4 -1 roll 5 index add % blue += incblue 4 -1 roll .5 sub % x += 0.5 } repeat mark 15 1 roll cleartomark exch pop % leave only start x on stack }B } % Parameters to radialshade pre: \pgf@domb y x max \special{! /pgfR1{ newpath dup dup dup 0 360 arc clip newpath dup /pgfendx exch def /pgfendy exch def 0.875 setlinewidth [] 0 setdash /pgfshade {pgfR} def /pgfstartx exch def /pgfstarty exch def /pgfdiffx pgfendx pgfstartx sub def /pgfdiffy pgfendy pgfstarty sub def dup /pgfdomb exch def }B } % Parameters to radialshade post: \pgf@firstcolor \pgf@doma \special{! /pgfR2{ newpath 0.5 add pgfcircx pgfcircy 3 2 roll 0 360 arc setrgbcolor fill pop}B }% % Parameters to radialshade: end x, start x, r-, g-, b- of first color, r-, g-, b- of second color % Stack afterwards: end x \special{! /pgfR{ /pgfdiff 8 index round cvi 8 index round cvi sub 4 mul 1 add def /pgfcircx pgfstartx 9 index pgfdiffx pgfdomb div mul add def /pgfcircy pgfstarty 9 index pgfdiffy pgfdomb div mul add def /pgfcircxe pgfstartx 8 index pgfdiffx pgfdomb div mul add def /pgfcircye pgfstarty 8 index pgfdiffy pgfdomb div mul add def /pgfxstep pgfcircxe pgfcircx sub pgfdiff div def /pgfystep pgfcircye pgfcircy sub pgfdiff div def 2 index 6 index sub pgfdiff div % put red-step on stack 2 index 6 index sub pgfdiff div % put green-step on stack 2 index 6 index sub pgfdiff div % put green-step on stack 8 index 8 index 8 index 13 index pgfdiff { 3 index 3 index 3 index setrgbcolor % Set color pgfcircx pgfcircy 2 index 0 360 arc closepath stroke 4 -1 roll 6 index add % red += incred 4 -1 roll 5 index add % green += incgreen 4 -1 roll 4 index add % blue += incblue 4 -1 roll .25 sub % x += 0.25 /pgfcircx pgfcircx pgfxstep add def /pgfcircy pgfcircy pgfystep add def } repeat mark 14 1 roll cleartomark exch pop % leave only start x on stack }B} } \ProcessOptions % % Parsing functions % \newdimen\pgf@max \def\pgf@parsefunc#1{% \edef\temp{{#1}}% \expandafter\pgf@convertrgbstring\temp% \edef\temp{{\pgf@rgbconv}}% \expandafter\pgf@@parsefunc\temp} \def\pgf@@parsefunc#1{% \def\pgf@bounds{}% \def\pgf@funcs{}% \def\pgf@psfuncs{}% \def\pgf@encode{}% \pgf@parsefirst[#1; ]% \pgf@parselastdom[#1; ]% \pgf@parsemid[#1; ]% \edef\pgf@pdfparsedfunction{% << /FunctionType 3 /Domain [\pgf@doma\space\pgf@domb] /Functions [\pgf@funcs\space] /Bounds [\pgf@bounds] /Encode [0 1 \pgf@encode] >> }% \xdef\pgf@psfuncs{\pgf@psfuncs}% } \def\pgf@parsefirst[rgb(#1)=(#2,#3,#4)#5]{% \setlength\pgf@x{#1}% \pgf@bpcorr\pgf@x% \edef\pgf@doma{\pgfget x}% \edef\pgf@prevx{\pgfget x}% \pgf@getrgbtuplewithmixin{#2}{#3}{#4}% \edef\pgf@prevcolor{\pgf@rgb}% \edef\pgf@firstcolor{\pgf@rgb}} \def\pgf@parselastdom[rgb(#1)=(#2,#3,#4); {% \@ifnextchar]{% \setlength\pgf@x{#1}% \pgf@max=\pgf@x\relax% \pgf@bpcorr\pgf@x% \edef\pgf@domb{\pgfget x}% \@gobble}{\pgf@parselastdom[}} \def\pgf@parsemid[rgb(#1)=(#2,#3,#4); {\pgf@parserest[} \def\pgf@parserest[rgb(#1)=(#2,#3,#4); {% \@ifnextchar]{% \pgf@getrgbtuplewithmixin{#2}{#3}{#4}% \edef\pgf@funcs{\pgf@funcs\space% << /FunctionType 2 /Domain [\pgf@doma\space\pgf@domb] /C0 [\pgf@prevcolor] /C1 [\pgf@rgb] /N 1 >> }% \edef\pgf@psfuncs{\pgf@prevx\space \pgf@rgb\space \pgf@prevcolor\space pgfshade \pgf@psfuncs}% \@gobble}{% \setlength\pgf@x{#1}% \pgf@bpcorr\pgf@x% \pgf@getrgbtuplewithmixin{#2}{#3}{#4}% \edef\pgf@psfuncs{\pgf@prevx\space \pgf@rgb\space \pgf@prevcolor\space pgfshade \pgf@psfuncs}% \edef\pgf@prevx{\pgfget{x}}% \edef\pgf@bounds{\pgf@bounds\space\pgfget x}% \edef\pgf@encode{\pgf@encode\space0 1}% \edef\pgf@funcs{\pgf@funcs\space% << /FunctionType 2 /Domain [\pgf@doma\space\pgf@domb] /C0 [\pgf@prevcolor] /C1 [\pgf@rgb] /N 1 >> }% \edef\pgf@prevcolor{\pgf@rgb}% \pgf@parserest[}} \def\pgf@getrgbtuplewithmixin#1#2#3{% \definecolor{pgfshadetemp}{rgb}{#1,#2,#3}% \applycolormixins{pgfshadetemp}% \extractcolorspec{pgfshadetemp}{\pgf@tempcolor}% \expandafter\convertcolorspec\pgf@tempcolor{rgb}{\pgf@rgbcolor}% \expandafter\pgf@getrgb@@\pgf@rgbcolor!} \def\pgf@getrgb@@#1,#2,#3!{% \def\pgf@rgb{#1 #2 #3}} \def\pgf@convertrgbstring#1{% \def\pgf@rgbconv{}% \pgf@converttorgb#1]% } \def\pgf@converttorgb{% \@ifnextchar]{\@gobble}%done! {% \@ifnextchar;{\pgf@grabsemicolor}% {% \@ifnextchar r{\pgf@grabrgb}% {% \@ifnextchar g{\pgf@grabgray}% {% \@ifnextchar c{\pgf@grabcolor}% {\PackageError{pgfshade}{Illformed shading specification}{}\pgf@converttorgb}% }% }% }% }% } \def\pgf@grabsemicolor;{% \edef\pgf@rgbconv{\pgf@rgbconv; }\pgf@converttorgb} \def\pgf@grabrgb rgb(#1)=(#2,#3,#4){% \edef\pgf@rgbconv{\pgf@rgbconv rgb(#1)=(#2,#3,#4)}\pgf@converttorgb} \def\pgf@grabgray gray(#1)=(#2){% \edef\pgf@rgbconv{\pgf@rgbconv rgb(#1)=(#2,#2,#2)}\pgf@converttorgb} \def\pgf@grabcolor color(#1)=(#2){% \colorlet{pgf@tempcol}{#2}% \extractcolorspec{pgf@tempcol}{\pgf@tempcolor}% \expandafter\convertcolorspec\pgf@tempcolor{rgb}{\pgf@rgbcolor}% \expandafter\pgf@convgetrgb@\expandafter{\pgf@rgbcolor}{#1}% } \def\pgf@convgetrgb@#1#2{% \edef\pgf@rgbconv{\pgf@rgbconv rgb(#2)=(#1)}\pgf@converttorgb} % Declares a horizontal shading for later use. The shading is a % horizontal bar that changes its color. % % #1 = name of the shading for later use % #2 = height of the shading % #3 = color specification in the following format: A list of colors % that the bar should have at certain points. If the bar should % be red at 1cm, this is specified as % "rgb(1cm)=(1,0,0)". Multiple specifications are separated by a % semicolon and a space. At least two specifications must be % given. The specified positions must be given in increasing % order. % % Example: % % \pgfdeclarehorizontalshading{redtogreentoblue}{1cm}{% % rgb(0cm)=(1,0,0); % red % rgb(1cm)=(0,1,0); % green % rgb(2cm)=(0,0,1)} % % \begin{document} % The following bar is 2cm long: \pgfuseshading{redtogreentoblue}. % \end{document} \newcommand\pgfdeclarehorizontalshading[4][]{% \expandafter\def\csname pgf@deps@pgfshading#2!\endcsname{#1}% \expandafter\ifx\csname pgf@deps@pgfshading#2!\endcsname\@empty% \pgfsys@horishading{#2}{#3}{#4}% \else% \expandafter\def\csname pgf@func@pgfshading#2!\endcsname{\pgfsys@horishading}% \expandafter\def\csname pgf@args@pgfshading#2!\endcsname{{#3}{#4}}% \expandafter\let\csname @pgfshading#2!\endcsname=\@empty% \fi} % Declares a vertical shading for later use. % % #1 = name of the shading for later use % #2 = height of the shading % #3 = color specification % % Example: % % \pgfdeclareverticalshading{redtogreentoblue}{1cm}{% % rgb(0cm)=(1,0,0); % red % rgb(1cm)=(0,1,0); % green % rgb(2cm)=(0,0,1)} % % \begin{document} % The following bar is 2cm high: \pgfuseshading{redtogreentoblue}. % \end{document} \newcommand\pgfdeclareverticalshading[4][]{% \expandafter\def\csname pgf@deps@pgfshading#2!\endcsname{#1}% \expandafter\ifx\csname pgf@deps@pgfshading#2!\endcsname\@empty% \pgfsys@vertshading{#2}{#3}{#4}% \else% \expandafter\def\csname pgf@func@pgfshading#2!\endcsname{\pgfsys@vertshading}% \expandafter\def\csname pgf@args@pgfshading#2!\endcsname{{#3}{#4}}% \expandafter\let\csname @pgfshading#2!\endcsname=\@empty% \fi} % Declares a radial shading for later use. % % #1 = name of the shading for later use % #2 = center of inner circle % #3 = color specification % % Description: % % A radial shading creates a smooth color transition between two % circles. The center of the inner circle is at the give position. Its % radius is the start of the color specification. The % center of the outer circle is at the center of the whole shading, % whose radius is the end of the color specification. For example, % suppose the color specification is "rgb(1cm)=(1,1,1); rgb(2cm)=(0,0,0)". % Then the shading would be 4cm times 4cm large. The inner circle would % have diameter 1cm and the outer circle would have diameter 2cm. The % outer circle would be centered in the middle of the shading, whereas % the outer circle would be centered at the given position. % % Example: % % \pgfdeclareradialshading{redtogreentoblue}{\pgfpoint{2cm}{2cm}}{% % rgb(10pt)=(1,0,0); % red % rgb(2cm)=(0,1,0); % green % rgb(3cm)=(0,0,1)} % % \begin{document} % The following ball has diameter 3cm: \pgfuseshading{redtogreentoblue}. % \end{document} \newcommand\pgfdeclareradialshading[4][]{% \expandafter\def\csname pgf@deps@pgfshading#2!\endcsname{#1}% \expandafter\ifx\csname pgf@deps@pgfshading#2!\endcsname\@empty% \pgfsys@radialshading{#2}{#3}{#4}% \else% \expandafter\def\csname pgf@func@pgfshading#2!\endcsname{\pgfsys@radialshading}% \expandafter\def\csname pgf@args@pgfshading#2!\endcsname{{#3}{#4}}% \expandafter\let\csname @pgfshading#2!\endcsname=\@empty% \fi} % Inserts a box into the text that contains a previously defined % shading. % % #1 = Name of a shading % % Example: % % \pgfuseshading{redtogreentoblue} \def\pgfuseshading#1{% \edef\pgf@shadingname{@pgfshading#1}% \pgf@tryextensions{\pgf@shadingname}{\pgfalternateextension}% \expandafter\@ifundefined\expandafter{\pgf@shadingname}% {\PackageError{pgfshade}{Undefined shading "#1"}{}}% {% {% \globalcolorsfalse% \def\pgf@shade@adds{}% \@ifundefined{pgf@deps\pgf@shadingname}% {}% {% \edef\@list{\csname pgf@deps\pgf@shadingname\endcsname}% \@for\@temp:=\@list\do{% {% \applycolormixins{\@temp}% \extractcolorspec{\@temp}{\pgf@tempcolor}% \expandafter\convertcolorspec\pgf@tempcolor{rgb}{\pgf@rgbcolor}% \xdef\pgf@shade@adds{\pgf@shade@adds,\pgf@rgbcolor}% }% }% }% \expandafter\pgf@strip@shadename\pgf@shadingname!!% \@ifundefined{@pgfshading\pgf@basename\pgf@shade@adds!}% {% {% \expandafter\def\expandafter\@temp\expandafter{\csname pgf@func\pgf@shadingname\endcsname}% \edef\@args{{\pgf@basename\pgf@shade@adds}}% \expandafter\expandafter\expandafter\def% \expandafter\expandafter\expandafter\@@args% \expandafter\expandafter\expandafter{\csname pgf@args\pgf@shadingname\endcsname}% \expandafter\expandafter\expandafter\@temp\expandafter\@args\@@args% % }% }% {}% \csname @pgfshading\pgf@basename\pgf@shade@adds!\endcsname% }% }% } \def\pgf@strip@shadename @pgfshading#1!!!{\def\pgf@basename{#1}} % Create an alias name for a shading % % #1 = name of the alias % #2 = name of the original % % Example: % % \pgfaliasshading{shading!25}{shadingshaded} \def\pgfaliasshading#1#2{% \expandafter\let\expandafter\pgf@temp\expandafter=\csname @pgfshading#2!\endcsname% \expandafter\let\csname @pgfshading#1!\endcsname=\pgf@temp% \expandafter\let\expandafter\pgf@temp\expandafter=\csname pgf@deps@pgfshading#2!\endcsname% \expandafter\let\csname pgf@deps@pgfshading#1!\endcsname=\pgf@temp% \expandafter\let\expandafter\pgf@temp\expandafter=\csname pgf@func@pgfshading#2!\endcsname% \expandafter\let\csname pgf@func@pgfshading#1!\endcsname=\pgf@temp% \expandafter\let\expandafter\pgf@temp\expandafter=\csname pgf@args@pgfshading#2!\endcsname% \expandafter\let\csname pgf@args@pgfshading#1!\endcsname=\pgf@temp% } \endinput semantik-0.9.5/src/templates/beamer/beamermindist/themes/000775 000000 000000 00000000000 12732552614 023457 5ustar00rootroot000000 000000 semantik-0.9.5/src/templates/beamer/beamermindist/themes/color/000775 000000 000000 00000000000 12732552614 024575 5ustar00rootroot000000 000000 semantik-0.9.5/src/templates/beamer/beamermindist/themes/color/beamercolorthemealbatross.sty000664 000000 000000 00000004211 12732552614 032564 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/color/beamercolorthemealbatross.sty,v 1.8 2004/10/07 22:21:15 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \setbeamercolor*{normal text}{fg=yellow!50!white,bg=blue!50!black} \DeclareOption{overlystylish} { \def\beamer@cta@do{ \setbeamertemplate{background canvas}[vertical shading][bottom=black,top=black,middle=blue!50!black] } } \ProcessOptions \@ifundefined{beamer@cta@do}{}{\beamer@cta@do} \mode \setbeamercolor*{example text}{fg=green!65!black} \setbeamercolor*{structure}{fg=blue!25!white} \setbeamercolor{palette primary}{use={structure,normal text},fg=structure.fg,bg=normal text.bg!75!black} \setbeamercolor{palette secondary}{use={structure,normal text},fg=structure.fg,bg=normal text.bg!60!black} \setbeamercolor{palette tertiary}{use={structure,normal text},fg=structure.fg,bg=normal text.bg!45!black} \setbeamercolor{palette quaternary}{use={structure,normal text},fg=structure.fg,bg=normal text.bg!30!black} \setbeamercolor*{block body}{bg=normal text.bg!90!black} \setbeamercolor*{block body alerted}{bg=normal text.bg!90!black} \setbeamercolor*{block body example}{bg=normal text.bg!90!black} \setbeamercolor*{block title}{parent=structure,bg=normal text.bg!75!black} \setbeamercolor*{block title alerted}{use={normal text,alerted text},fg=alerted text.fg!75!normal text.fg,bg=normal text.bg!75!black} \setbeamercolor*{block title example}{use={normal text,example text},fg=example text.fg!75!normal text.fg,bg=normal text.bg!75!black} \setbeamercolor{item projected}{fg=black} \setbeamercolor*{sidebar}{parent=palette primary} \setbeamercolor{palette sidebar primary}{use=normal text,fg=normal text.fg} \setbeamercolor{palette sidebar secondary}{use=structure,fg=structure.fg} \setbeamercolor{palette sidebar tertiary}{use=normal text,fg=normal text.fg} \setbeamercolor{palette sidebar quaternary}{use=structure,fg=structure.fg} \setbeamercolor*{separation line}{} \setbeamercolor*{fine separation line}{} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/color/beamercolorthemebeetle.sty000664 000000 000000 00000003176 12732552614 032043 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/color/beamercolorthemebeetle.sty,v 1.5 2004/10/07 22:21:15 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \setbeamercolor{normal text}{fg=black,bg=black!40} \setbeamercolor{structure}{fg=white} \setbeamercolor{alerted text}{fg=red!85!black} \setbeamercolor{item projected}{use=item,fg=black,bg=item.fg!75} \definecolor{beetle@other}{RGB}{64,80,127} \setbeamercolor*{palette primary}{fg=white,bg=beetle@other} \setbeamercolor*{palette secondary}{parent=palette primary,use=palette primary,bg=palette primary.bg!95!black} \setbeamercolor*{palette tertiary}{parent=palette primary,use=palette primary,bg=palette primary.bg!90!black} \setbeamercolor*{palette quaternary}{parent=palette primary,use=palette primary,bg=palette primary.bg!85!black} \setbeamercolor*{sidebar}{parent=palette primary} \setbeamercolor*{palette sidebar primary}{fg=white} \setbeamercolor*{palette sidebar secondary}{fg=black} \setbeamercolor*{palette sidebar tertiary}{fg=white} \setbeamercolor*{palette sidebar quaternary}{fg=black} \setbeamercolor{framesubtitle}{fg=black} \setbeamercolor*{subtitle}{fg=black} \setbeamercolor*{block title}{parent=structure} \setbeamercolor*{block title alerted}{parent=alerted text} \setbeamercolor*{block title example}{parent=example text} \setbeamercolor*{block body}{} \setbeamercolor*{block body alerted}{} \setbeamercolor*{block body example}{} \setbeamercolor*{titlelike}{parent=structure} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/color/beamercolorthemecrane.sty000664 000000 000000 00000003244 12732552614 031667 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/color/beamercolorthemecrane.sty,v 1.7 2004/10/07 22:21:16 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \definecolor{craneorange}{RGB}{252,187,6} \definecolor{craneblue}{RGB}{4,6,76} \setbeamercolor{structure}{fg=craneblue} \setbeamercolor{palette primary}{fg=craneblue,bg=craneorange!70} \setbeamercolor{palette secondary}{fg=craneblue,bg=craneorange!80} \setbeamercolor{palette tertiary}{fg=craneblue,bg=craneorange!90} \setbeamercolor{palette quaternary}{fg=craneblue,bg=craneorange} \setbeamercolor{titlelike}{parent=palette quaternary} \setbeamercolor{block title}{fg=craneblue,bg=craneorange} \setbeamercolor{block title alerted}{use=alerted text,fg=black,bg=alerted text.fg!75!bg} \setbeamercolor{block title example}{use=example text,fg=black,bg=example text.fg!75!bg} \setbeamercolor{block body}{parent=normal text,use=block title,bg=block title.bg!25!bg} \setbeamercolor{block body alerted}{parent=normal text,use=block title alerted,bg=block title alerted.bg!25!bg} \setbeamercolor{block body example}{parent=normal text,use=block title example,bg=block title example.bg!25!bg} \setbeamercolor{sidebar}{bg=craneorange!70} \setbeamercolor{palette sidebar primary}{fg=craneblue} \setbeamercolor{palette sidebar secondary}{fg=craneblue!75} \setbeamercolor{palette sidebar tertiary}{fg=craneblue!75} \setbeamercolor{palette sidebar quaternary}{fg=craneblue} \setbeamercolor*{separation line}{} \setbeamercolor*{fine separation line}{} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/color/beamercolorthemedefault.sty000664 000000 000000 00000013771 12732552614 032231 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/color/beamercolorthemedefault.sty,v 1.25 2004/10/07 22:21:16 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \definecolor{beamer@blendedblue}{rgb}{0.2,0.2,0.7} % use structure theme to change \setbeamercolor{normal text}{fg=black,bg=white} \setbeamercolor{alerted text}{fg=red} \setbeamercolor{example text}{fg=green!50!black} \setbeamercolor{structure}{fg=beamer@blendedblue} \setbeamercolor{background canvas}{parent=normal text} \setbeamercolor{background}{parent=background canvas} \setbeamercolor{palette primary}{use=structure,fg=structure.fg} \setbeamercolor{palette secondary}{use=structure,fg=structure.fg!75!black} \setbeamercolor{palette tertiary}{use=structure,fg=structure.fg!50!black} \setbeamercolor{palette quaternary}{fg=black} \setbeamercolor{palette sidebar primary}{use=normal text,fg=normal text.fg} \setbeamercolor{palette sidebar secondary}{use=structure,fg=structure.fg} \setbeamercolor{palette sidebar tertiary}{use=normal text,fg=normal text.fg} \setbeamercolor{palette sidebar quaternary}{use=structure,fg=structure.fg} \setbeamercolor{math text}{} \setbeamercolor{math text inlined}{parent=math text} \setbeamercolor{math text displayed}{parent=math text} \setbeamercolor{normal text in math text}{} \setbeamercolor{local structure}{parent=structure} \setbeamercolor{titlelike}{parent=structure} \setbeamercolor{title}{parent=titlelike} \setbeamercolor{title in head/foot}{parent=palette quaternary} \setbeamercolor{title in sidebar}{parent=palette sidebar quaternary} \setbeamercolor{subtitle}{parent=title} \setbeamercolor{author}{} \setbeamercolor{author in head/foot}{parent=palette primary} \setbeamercolor{author in sidebar}{use=palette sidebar tertiary,fg=palette sidebar tertiary.fg} \setbeamercolor{institute}{} \setbeamercolor{institute in head/foot}{parent=palette tertiary} \setbeamercolor{institute in sidebar}{use=palette sidebar tertiary,fg=palette sidebar tertiary.fg} \setbeamercolor{date}{} \setbeamercolor{date in head/foot}{parent=palette secondary} \setbeamercolor{date in sidebar}{use=palette sidebar tertiary,fg=palette sidebar tertiary.fg} \setbeamercolor{titlegraphic}{} \setbeamercolor{part name}{} \setbeamercolor{part title}{parent=titlelike} \setbeamercolor{section in toc}{parent=structure} \setbeamercolor{section in head/foot}{parent=palette tertiary} \setbeamercolor{section in sidebar}{parent=palette sidebar secondary} \setbeamercolor{section in sidebar shaded}{use=section in sidebar,fg=section in sidebar.fg!40!bg} \setbeamercolor{section number projected}{parent=item projected} \setbeamercolor{subsection in toc}{} \setbeamercolor{subsection in head/foot}{parent=palette secondary} \setbeamercolor{subsection in sidebar}{parent=palette sidebar primary} \setbeamercolor{subsection in sidebar shaded}{use=subsection in sidebar,fg=subsection in sidebar.fg!40!bg} \setbeamercolor{subsection number projected}{parent={subitem projected}} \setbeamercolor{headline}{} \setbeamercolor{footline}{} \setbeamercolor{sidebar}{} \setbeamercolor{sidebar left}{parent=sidebar} \setbeamercolor{sidebar right}{parent=sidebar} \setbeamercolor{logo}{parent=palette secondary} \setbeamercolor{frametitle}{parent=titlelike} \setbeamercolor{framesubtitle}{parent=frametitle} \setbeamercolor{frametitle right}{parent=frametitle} \setbeamercolor{caption}{} \setbeamercolor{caption name}{parent=structure} \setbeamercolor{button}{use=local structure,bg=local structure.fg!50!bg,fg=white} \setbeamercolor{button border}{use=button,fg=button.bg} \setbeamercolor{navigation symbols}{use=structure,fg=structure.fg!40!bg} \setbeamercolor{navigation symbols dimmed}{use=structure,fg=structure.fg!20!bg} \setbeamercolor{mini frame}{parent=section in head/foot} \setbeamercolor{block body}{} \setbeamercolor{block body alerted}{} \setbeamercolor{block body example}{} \setbeamercolor{block title}{parent=structure} \setbeamercolor{block title alerted}{parent=alerted text} \setbeamercolor{block title example}{parent=example text} \setbeamercolor{item}{parent=local structure} \setbeamercolor{subitem}{parent=item} \setbeamercolor{subsubitem}{parent=subitem} \setbeamercolor{item projected}{parent=item,use=item,fg=white,bg=item.fg} \setbeamercolor{subitem projected}{parent=item projected} \setbeamercolor{subsubitem projected}{parent=subitem projected} \setbeamercolor{enumerate item}{parent=item} \setbeamercolor{enumerate subitem}{parent=subitem} \setbeamercolor{enumerate subsubitem}{parent=subsubitem} \setbeamercolor{itemize item}{parent=item} \setbeamercolor{itemize subitem}{parent=subitem} \setbeamercolor{itemize subsubitem}{parent=subsubitem} \setbeamercolor{itemize/enumerate body}{} \setbeamercolor{itemize/enumerate subbody}{} \setbeamercolor{itemize/enumerate subsubbody}{} \setbeamercolor{description item}{parent=item} \setbeamercolor{bibliography item}{parent=item} \setbeamercolor{bibliography entry author}{use=structure,fg=structure.fg} \setbeamercolor{bibliography entry title}{use=normal text,fg=normal text.fg} \setbeamercolor{bibliography entry location}{use=structure,fg=structure.fg!65!bg} \setbeamercolor{bibliography entry note}{use=structure,fg=structure.fg!65!bg} \setbeamercolor{separation line}{} \setbeamercolor{upper separation line head}{parent=separation line} \setbeamercolor{middle separation line head}{parent=separation line} \setbeamercolor{lower separation line head}{parent=separation line} \setbeamercolor{upper separation line foot}{parent=separation line} \setbeamercolor{middle separation line foot}{parent=separation line} \setbeamercolor{lower separation line foot}{parent=separation line} \setbeamercolor{abstract}{} \setbeamercolor{abstract title}{parent=structure} \setbeamercolor{verse}{} \setbeamercolor{quotation}{} \setbeamercolor{quote}{parent=quotation} \setbeamercolor{page number in head/foot}{fg=fg!50!bg} \setbeamercolor{qed symbol}{parent=structure} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/color/beamercolorthemedove.sty000664 000000 000000 00000002603 12732552614 031532 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/color/beamercolorthemedove.sty,v 1.4 2004/10/07 22:21:16 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \setbeamercolor*{normal text}{fg=black,bg=white} \setbeamercolor*{alerted text}{fg=black} \setbeamercolor*{example text}{fg=black} \setbeamercolor*{structure}{fg=black} \setbeamerfont{alerted text}{series=\bfseries} \setbeamercolor{palette primary}{fg=black,bg=white} \setbeamercolor{palette secondary}{fg=black,bg=white} \setbeamercolor{palette tertiary}{fg=black,bg=white} \setbeamercolor{palette quaternary}{fg=black,bg=white} \setbeamercolor{sidebar}{bg=black!20} \setbeamercolor{palette sidebar primary}{fg=black} \setbeamercolor{palette sidebar secondary}{fg=black} \setbeamercolor{palette sidebar tertiary}{fg=black} \setbeamercolor{palette sidebar quaternary}{fg=black} \setbeamercolor{item projected}{fg=black,bg=black!20} \setbeamercolor*{block body}{} \setbeamercolor*{block body alerted}{} \setbeamercolor*{block body example}{} \setbeamercolor*{block title}{parent=structure} \setbeamercolor*{block title alerted}{parent=alerted text} \setbeamercolor*{block title example}{parent=example text} \setbeamercolor*{titlelike}{parent=structure} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/color/beamercolorthemefly.sty000664 000000 000000 00000002662 12732552614 031374 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/color/beamercolorthemefly.sty,v 1.3 2004/10/07 22:21:16 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \setbeamercolor{normal text}{fg=black,bg=black!40} \setbeamercolor{structure}{fg=white} \setbeamercolor{alerted text}{fg=red!85!black} \setbeamercolor{item projected}{use=item,fg=black,bg=item.fg!75} \setbeamercolor*{sidebar}{bg=black!50} \setbeamercolor*{palette primary}{use=structure,fg=structure.fg} \setbeamercolor*{palette secondary}{use=structure,fg=structure.fg!95!black} \setbeamercolor*{palette tertiary}{use=structure,fg=structure.fg!90!black} \setbeamercolor*{palette quaternary}{use=structure,fg=structure.fg!85!black} \setbeamercolor*{palette sidebar primary}{fg=white} \setbeamercolor*{palette sidebar secondary}{fg=black} \setbeamercolor*{palette sidebar tertiary}{fg=white} \setbeamercolor*{palette sidebar quaternary}{fg=black} \setbeamercolor*{framesubtitle}{fg=black} \setbeamercolor*{subtitle}{fg=black} \setbeamercolor*{block title}{parent=structure} \setbeamercolor*{block title alerted}{parent=alerted text} \setbeamercolor*{block title example}{parent=example text} \setbeamercolor*{block body}{} \setbeamercolor*{block body alerted}{} \setbeamercolor*{block body example}{} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/color/beamercolorthemelily.sty000664 000000 000000 00000001241 12732552614 031543 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/color/beamercolorthemelily.sty,v 1.3 2004/10/07 20:53:09 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \setbeamercolor*{block body}{} \setbeamercolor*{block body alerted}{} \setbeamercolor*{block body example}{} \setbeamercolor*{block title}{parent=structure} \setbeamercolor*{block title alerted}{parent=alerted text} \setbeamercolor*{block title example}{parent=example text} \setbeamercolor*{titlelike}{parent=structure} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/color/beamercolorthemeorchid.sty000664 000000 000000 00000001640 12732552614 032045 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/color/beamercolorthemeorchid.sty,v 1.2 2004/10/07 20:53:09 tantau Exp $ % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \setbeamercolor{block title}{use=structure,fg=white,bg=structure.fg!75!black} \setbeamercolor{block title alerted}{use=alerted text,fg=white,bg=alerted text.fg!75!black} \setbeamercolor{block title example}{use=example text,fg=white,bg=example text.fg!75!black} \setbeamercolor{block body}{parent=normal text,use=block title,bg=block title.bg!10!bg} \setbeamercolor{block body alerted}{parent=normal text,use=block title alerted,bg=block title alerted.bg!10!bg} \setbeamercolor{block body example}{parent=normal text,use=block title example,bg=block title example.bg!10!bg} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/color/beamercolorthemerose.sty000664 000000 000000 00000001657 12732552614 031555 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/color/beamercolorthemerose.sty,v 1.2 2004/10/07 20:53:09 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \setbeamercolor{block title}{use=structure,fg=structure.fg,bg=structure.fg!20!bg} \setbeamercolor{block title alerted}{use=alerted text,fg=alerted text.fg,bg=alerted text.fg!20!bg} \setbeamercolor{block title example}{use=example text,fg=example text.fg,bg=example text.fg!20!bg} \setbeamercolor{block body}{parent=normal text,use=block title,bg=block title.bg!50!bg} \setbeamercolor{block body alerted}{parent=normal text,use=block title alerted,bg=block title alerted.bg!50!bg} \setbeamercolor{block body example}{parent=normal text,use=block title example,bg=block title example.bg!50!bg} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/color/beamercolorthemeseagull.sty000664 000000 000000 00000002774 12732552614 032242 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/color/beamercolorthemeseagull.sty,v 1.4 2004/10/07 22:21:16 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \setbeamercolor*{normal text}{fg=black,bg=white} \setbeamercolor*{alerted text}{fg=black} \setbeamercolor*{example text}{fg=black} \setbeamercolor*{structure}{fg=black} \setbeamerfont{alerted text}{series=\bfseries} \setbeamercolor*{palette primary}{fg=black,bg=black!20} \setbeamercolor*{palette secondary}{fg=black,bg=black!25} \setbeamercolor*{palette tertiary}{fg=black,bg=black!30} \setbeamercolor*{palette quaternary}{fg=black,bg=black!35} \setbeamercolor{sidebar}{bg=black!20} \setbeamercolor*{palette sidebar primary}{fg=black} \setbeamercolor*{palette sidebar secondary}{fg=black} \setbeamercolor*{palette sidebar tertiary}{fg=black} \setbeamercolor*{palette sidebar quaternary}{fg=black} \setbeamercolor*{item projected}{fg=black,bg=black!20} \setbeamercolor*{block title}{fg=black,bg=black!20} \setbeamercolor*{block title alerted}{fg=black,bg=black!20} \setbeamercolor*{block title example}{fg=black,bg=black!20} \setbeamercolor*{block body}{fg=black,bg=black!10} \setbeamercolor*{block body alerted}{fg=black,bg=black!10} \setbeamercolor*{block body example}{fg=black,bg=black!10} \setbeamercolor*{separation line}{} \setbeamercolor*{fine separation line}{} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/color/beamercolorthemeseahorse.sty000664 000000 000000 00000002244 12732552614 032407 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/color/beamercolorthemeseahorse.sty,v 1.3 2004/10/07 22:21:16 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \setbeamercolor{palette primary}{use=structure,fg=black,bg=structure.fg!20!white} \setbeamercolor{palette secondary}{use=structure,fg=black,bg=structure.fg!25!white} \setbeamercolor{palette tertiary}{use=structure,fg=black,bg=structure.fg!30!white} \setbeamercolor{palette quaternary}{use=structure,fg=black,bg=structure.fg!35!white} \setbeamercolor{sidebar}{use=structure,bg=structure.fg!20!white} \setbeamercolor{palette sidebar primary}{use=normal text,fg=normal text.fg} \setbeamercolor{palette sidebar secondary}{use=structure,fg=structure.fg} \setbeamercolor{palette sidebar tertiary}{use=normal text,fg=normal text.fg} \setbeamercolor{palette sidebar quaternary}{use=structure,fg=structure.fg} \setbeamercolor*{titlelike}{parent=palette primary} \setbeamercolor*{separation line}{} \setbeamercolor*{fine separation line}{} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/color/beamercolorthemesidebartab.sty000664 000000 000000 00000001460 12732552614 032675 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/color/beamercolorthemesidebartab.sty,v 1.3 2004/10/07 20:53:09 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \setbeamercolor*{section in sidebar shaded}{parent=palette sidebar secondary} \setbeamercolor*{section in sidebar} {parent=section in sidebar shaded,use={sidebar,section in sidebar shaded},% bg=sidebar.bg!70!section in sidebar shaded.fg} \setbeamercolor*{subsection in sidebar shaded}{parent=palette sidebar primary} \setbeamercolor*{subsection in sidebar} {parent=subsection in sidebar shaded,use=section in sidebar,% bg=section in sidebar.bg} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/color/beamercolorthemestructure.sty000664 000000 000000 00000001626 12732552614 032641 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/color/beamercolorthemestructure.sty,v 1.3 2004/10/07 20:53:09 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \DeclareOptionBeamer{gray}{\definecolor{beamer@structure@color}{gray}{#1}} \DeclareOptionBeamer{rgb}{\definecolor{beamer@structure@color}{rgb}{#1}} \DeclareOptionBeamer{RGB}{\definecolor{beamer@structure@color}{RGB}{#1}} \DeclareOptionBeamer{cmyk}{\definecolor{beamer@structure@color}{cmyk}{#1}} \DeclareOptionBeamer{cmy}{\definecolor{beamer@structure@color}{cmy}{#1}} \DeclareOptionBeamer{named}{\definecolor{beamer@structure@color}{named}{#1}} \DeclareOptionBeamer{hsb}{\definecolor{beamer@structure@color}{hsb}{#1}} \ProcessOptionsBeamer \setbeamercolor{structure}{fg=beamer@structure@color} semantik-0.9.5/src/templates/beamer/beamermindist/themes/color/beamercolorthemewhale.sty000664 000000 000000 00000002120 12732552614 031667 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/color/beamercolorthemewhale.sty,v 1.3 2004/10/07 22:21:16 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \setbeamercolor*{palette primary}{use=structure,fg=white,bg=structure.fg} \setbeamercolor*{palette secondary}{use=structure,fg=white,bg=structure.fg!75!black} \setbeamercolor*{palette tertiary}{use=structure,fg=white,bg=structure.fg!50!black} \setbeamercolor*{palette quaternary}{fg=white,bg=black} \setbeamercolor*{sidebar}{use=structure,bg=structure.fg} \setbeamercolor*{palette sidebar primary}{use=structure,fg=structure.fg!10} \setbeamercolor*{palette sidebar secondary}{fg=white} \setbeamercolor*{palette sidebar tertiary}{use=structure,fg=structure.fg!50} \setbeamercolor*{palette sidebar quaternary}{fg=white} \setbeamercolor*{titlelike}{parent=palette primary} \setbeamercolor*{separation line}{} \setbeamercolor*{fine separation line}{} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/font/000775 000000 000000 00000000000 12732552614 024425 5ustar00rootroot000000 000000 semantik-0.9.5/src/templates/beamer/beamermindist/themes/font/beamerfontthemedefault.sty000664 000000 000000 00000006633 12732552614 031710 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/font/beamerfontthemedefault.sty,v 1.10 2004/10/07 20:53:09 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \setbeamerfont{normal text}{} % ignored currently \setbeamerfont{alerted text}{} \setbeamerfont{example text}{} \setbeamerfont{structure}{} \setbeamerfont{tiny structure}{size=\tiny} \setbeamerfont{title}{size=\Large,parent=structure} \setbeamerfont{title in head/foot}{} \setbeamerfont{title in sidebar}{size=\tiny} \setbeamerfont{subtitle}{size=\normalsize,parent=title} \setbeamerfont{author}{} \setbeamerfont{author in head/foot}{} \setbeamerfont{author in sidebar}{size=\tiny} \setbeamerfont{institute}{size=\scriptsize} \setbeamerfont{institute in head/foot}{} \setbeamerfont{institute in sidebar}{} \setbeamerfont{date}{} \setbeamerfont{date in head/foot}{} \setbeamerfont{date in sidebar}{} \setbeamerfont{part name}{size=\Large} \setbeamerfont{part title}{parent=title} \setbeamerfont{section in toc}{parent=structure} \setbeamerfont{section in head/foot}{} \setbeamerfont{section in sidebar}{size=\tiny} \setbeamerfont{section number projected}{size=\small,parent={section in toc,projected text}} \setbeamerfont{subsection in toc}{} \setbeamerfont{subsection in head/foot}{} \setbeamerfont{subsection in sidebar}{} \setbeamerfont{headline}{parent={tiny structure}} \setbeamerfont{footline}{parent={tiny structure}} \setbeamerfont{sidebar}{size=\Tiny,parent={tiny structure}} \setbeamerfont{sidebar left}{parent=sidebar} \setbeamerfont{sidebar right}{parent=sidebar} \setbeamerfont{frametitle}{parent=structure,size=\Large} \setbeamerfont{framesubtitle}{parent=frametitle,size=\footnotesize} \setbeamerfont{caption}{size=\small} \setbeamerfont{caption name}{parent={structure,caption}} \setbeamerfont{button}{size=\tiny} \setbeamerfont{block body}{} \setbeamerfont{block body alerted}{} \setbeamerfont{block body example}{} \setbeamerfont{block title}{size=\large,parent={structure,block body}} \setbeamerfont{block title alerted}{parent={block title,alerted text}} \setbeamerfont{block title example}{parent={block title,example text}} \setbeamerfont{item}{parent=structure} \setbeamerfont{subitem}{parent=item} \setbeamerfont{subsubitem}{parent=subitem} \setbeamerfont{item projected}{size=\tiny,parent={item,projected text}} \setbeamerfont{subitem projected}{parent=item projected} \setbeamerfont{subsubitem projected}{parent=subitem projected} \setbeamerfont{itemize item}{parent=item} \setbeamerfont{itemize subitem}{parent=subitem} \setbeamerfont{itemize subsubitem}{parent=subsubitem} \setbeamerfont{enumerate item}{parent=item} \setbeamerfont{enumerate subitem}{parent=subitem} \setbeamerfont{enumerate subsubitem}{parent=subsubitem} \setbeamerfont{itemize/enumerate body}{} \setbeamerfont{itemize/enumerate subbody}{size=\small} \setbeamerfont{itemize/enumerate subsubbody}{size=\footnotesize} \setbeamerfont{description item}{parent=item} \setbeamerfont{projected text}{parent={tiny structure}} \setbeamerfont{abstract}{size=\small} \setbeamerfont{abstract title}{parent={abstract,structure},size=\normalsize} \setbeamerfont{verse}{family=\rmfamily,shape=\itshape} \setbeamerfont{quotation}{shape=\itshape} \setbeamerfont{quote}{parent=quotation} \setbeamerfont{note page}{size=\small} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/font/beamerfontthemeprofessionalfonts.sty000664 000000 000000 00000000576 12732552614 034042 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/font/beamerfontthemeprofessionalfonts.sty,v 1.2 2004/10/07 20:53:09 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode{\beamer@suppressreplacementstrue} semantik-0.9.5/src/templates/beamer/beamermindist/themes/font/beamerfontthemeserif.sty000664 000000 000000 00000002025 12732552614 031363 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/font/beamerfontthemeserif.sty,v 1.3 2004/10/07 20:53:09 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \DeclareOptionBeamer{stillsansserifmath}[]{\def\mathfamilydefault{\sfdefault}\beamer@sansmathtrue} \DeclareOptionBeamer{stillsansserifsmall}[]{\def\beamer@tsfont{\sffamily}} \DeclareOptionBeamer{stillsansseriflarge}[]{\def\beamer@sfont{\sffamily}} \DeclareOptionBeamer{stillsansseriftext}[]{\def\familydefault{\sfdefault}} \DeclareOptionBeamer{onlymath}[]{ \def\beamer@tsfont{\sffamily} \def\beamer@sfont{\sffamily} \def\familydefault{\sfdefault} } \def\beamer@tsfont{\rmfamily} \def\beamer@sfont{\rmfamily} \def\familydefault{\rmdefault} \def\mathfamilydefault{\rmdefault} \beamer@sansmathfalse \ProcessOptionsBeamer \setbeamerfont{tiny structure}{family=\beamer@tsfont} \setbeamerfont{structure}{family=\beamer@sfont} semantik-0.9.5/src/templates/beamer/beamermindist/themes/font/beamerfontthemestructurebold.sty000664 000000 000000 00000001314 12732552614 033154 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/font/beamerfontthemestructurebold.sty,v 1.2 2004/10/07 20:53:09 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \def\beamer@ftb@str{ \setbeamerfont{structure}{series=\bfseries} \setbeamerfont{block title}{size={}} } \def\beamer@ftb@tstr{\setbeamerfont{tiny structure}{series=\bfseries}} \DeclareOptionBeamer{onlysmall}{\let\beamer@ftb@str=\relax} \DeclareOptionBeamer{onlylarge}{\let\beamer@ftb@tstr=\relax} \ProcessOptionsBeamer \mode \beamer@ftb@str \beamer@ftb@tstr \mode src/templates/beamer/beamermindist/themes/font/beamerfontthemestructureitalicserif.sty000664 000000 000000 00000001362 12732552614 034456 0ustar00rootroot000000 000000 semantik-0.9.5\ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/font/beamerfontthemestructureitalicserif.sty,v 1.2 2004/10/07 20:53:09 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \def\beamer@ftb@str{% \setbeamerfont{structure}{shape=\itshape,family=\rmfamily} \setbeamerfont{block title}{size={}} } \def\beamer@ftb@tstr{\setbeamerfont{tiny structure}{shape=\itshape,family=\rmfamily}} \DeclareOptionBeamer{onlysmall}{\let\beamer@ftb@str=\relax} \DeclareOptionBeamer{onlylarge}{\let\beamer@ftb@tstr=\relax} \ProcessOptionsBeamer \mode \beamer@ftb@str \beamer@ftb@tstr \mode src/templates/beamer/beamermindist/themes/font/beamerfontthemestructuresmallcapsserif.sty000664 000000 000000 00000001374 12732552614 035173 0ustar00rootroot000000 000000 semantik-0.9.5\ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/font/beamerfontthemestructuresmallcapsserif.sty,v 1.2 2004/10/07 20:53:09 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \def\beamer@ftb@str{ \setbeamerfont{structure}{shape=\scshape,family=\rmfamily} \setbeamerfont{section in toc}{size=\large} } \def\beamer@ftb@tstr{\setbeamerfont{tiny structure}{shape=\scshape,family=\rmfamily}} \DeclareOptionBeamer{onlysmall}{\let\beamer@ftb@str=\relax} \DeclareOptionBeamer{onlylarge}{\let\beamer@ftb@tstr=\relax} \ProcessOptionsBeamer \mode \beamer@ftb@str \beamer@ftb@tstr \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/inner/000775 000000 000000 00000000000 12732552614 024572 5ustar00rootroot000000 000000 semantik-0.9.5/src/templates/beamer/beamermindist/themes/inner/beamerinnerthemecircles.sty000664 000000 000000 00000000673 12732552614 032220 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/inner/beamerinnerthemecircles.sty,v 1.3 2004/10/07 20:53:09 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \setbeamertemplate{items}[circle] \setbeamertemplate{sections/subsections in toc}[circle] \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/inner/beamerinnerthemedefault.sty000664 000000 000000 00000026540 12732552614 032221 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/inner/beamerinnerthemedefault.sty,v 1.14 2004/10/07 20:53:09 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode % Some images: \pgfdeclareimage[width=14pt,height=12pt]{beamericonbook}{beamericonbook} \pgfdeclareimage[width=14pt,height=12pt]{beamericonbookshaded}{beamericonbook.20} \pgfaliasimage{beamericonbook.!20opaque}{beamericonbookshaded} \pgfaliasimage{beamericonbook.!15opaque}{beamericonbookshaded} \pgfaliasimage{beamericonbook.!10opaque}{beamericonbookshaded} \pgfaliasimage{beamericonbook.!5opaque}{beamericonbookshaded} \pgfaliasimage{beamericonbook.!2opaque}{beamericonbookshaded} \pgfdeclareimage[width=11pt,height=14pt]{beamericonarticle}{beamericonarticle} \pgfdeclareimage[width=11pt,height=14pt]{beamericonarticleshaded}{beamericonarticle.20} \pgfaliasimage{beamericonarticle.!20opaque}{beamericonarticleshaded} \pgfaliasimage{beamericonarticle.!15opaque}{beamericonarticleshaded} \pgfaliasimage{beamericonarticle.!10opaque}{beamericonarticleshaded} \pgfaliasimage{beamericonarticle.!5opaque}{beamericonarticleshaded} \pgfaliasimage{beamericonarticle.!2opaque}{beamericonarticleshaded} % Title page: default \defbeamertemplate*{title page}{default}[1][] { \vbox{} \vfill \begin{centering} \begin{beamercolorbox}[sep=8pt,center,#1]{title} \usebeamerfont{title}\inserttitle\par% \ifx\insertsubtitle\@empty% \else% \vskip0.25em% {\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle\par}% \fi% \end{beamercolorbox}% \vskip1em\par \begin{beamercolorbox}[sep=8pt,center,#1]{author} \usebeamerfont{author}\insertauthor \end{beamercolorbox} \begin{beamercolorbox}[sep=8pt,center,#1]{institute} \usebeamerfont{institute}\insertinstitute \end{beamercolorbox} \begin{beamercolorbox}[sep=8pt,center,#1]{date} \usebeamerfont{date}\insertdate \end{beamercolorbox}\vskip0.5em {\usebeamercolor[fg]{titlegraphic}\inserttitlegraphic\par} \end{centering} \vfill } % Part page: default \defbeamertemplate*{part page}{default}[1][] { \begin{centering} {\usebeamerfont{part name}\usebeamercolor[fg]{part name}\partname~\insertromanpartnumber} \vskip1em\par \begin{beamercolorbox}[sep=8pt,center,#1]{part title} \usebeamerfont{part title}\insertpart\par \end{beamercolorbox} \end{centering} } % Frame title: default \defbeamertemplate*{frametitle}{default}[1][left] { \ifbeamercolorempty[bg]{frametitle}{}{\nointerlineskip}% \@tempdima=\textwidth% \advance\@tempdima by\beamer@leftmargin% \advance\@tempdima by\beamer@rightmargin% \begin{beamercolorbox}[sep=0.3cm,#1,wd=\the\@tempdima]{frametitle} \if@tempswa\else\csname beamer@fte#1\endcsname\fi% {\usebeamerfont{frametitle}\insertframetitle\par}% {% \ifx\insertframesubtitle\@empty% \else% {\usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\insertframesubtitle\par}% \fi }% \if@tempswa\else\vskip-.3cm\fi% set inside beamercolorbox... evil here... \end{beamercolorbox}% } \def\beamer@fteright{\vskip0.35cm\advance\leftskip by 1.7cm\advance\rightskip by1.7cm} % Frame title continuations, default \defbeamertemplate*{frametitle continuation}{default}{\insertcontinuationcountroman} % % Table of contents % \defbeamertemplateparent{sections/subsections in toc}{section in toc,subsection in toc} {} \defbeamertemplateparent{sections/subsections in toc shaded}{section in toc shaded,subsection in toc shaded}[1][20] {[#1]} % (sub-)section in toc: default \defbeamertemplate*{section in toc}{default} {\inserttocsection\par} \defbeamertemplate*{subsection in toc}{default} {\leavevmode\leftskip=1.5em\inserttocsubsection\par} % (sub-)section in toc shaded, default \defbeamertemplate*{section in toc shaded}{default}[1][20] {\begin{colormixin}{#1!parent.bg}\usebeamertemplate{section in toc}\end{colormixin}\unskip} \defbeamertemplate*{subsection in toc shaded}{default}[1][20] {\begin{colormixin}{#1!parent.bg}\usebeamertemplate{subsection in toc}\end{colormixin}\unskip} % % Item % \defbeamertemplateparent{items}{itemize items,enumerate items} {} % Itemize items \defbeamertemplateparent{itemize items}{itemize item,itemize subitem,itemize subsubitem} {} % Itemize items, default \defbeamertemplate*{itemize item}{default}{\scriptsize\raise1.25pt\hbox{\donotcoloroutermaths$\blacktriangleright$}} \defbeamertemplate*{itemize subitem}{default}{\tiny\raise1.5pt\hbox{\donotcoloroutermaths$\blacktriangleright$}} \defbeamertemplate*{itemize subsubitem}{default}{\tiny\raise1.5pt\hbox{\donotcoloroutermaths$\blacktriangleright$}} % Enumerate items, default \defbeamertemplateparent{enumerate items}{enumerate item,enumerate subitem,enumerate subsubitem,enumerate mini} {} \defbeamertemplate*{enumerate item}{default}{\insertenumlabel.} \defbeamertemplate*{enumerate subitem}{default}{\insertenumlabel.\insertsubenumlabel} \defbeamertemplate*{enumerate subsubitem}{default}{\insertenumlabel.\insertsubenumlabel.\insertsubsubenumlabel} \defbeamertemplate*{enumerate mini template}{default}{\insertenumlabel} % Description item width \defbeamertemplate*{description item}{default}{\insertdescriptionitem} % Itemize/Enumerate body \defbeamertemplate*{itemize/enumerate body begin}{default}{} \defbeamertemplate*{itemize/enumerate body end}{default}{} \defbeamertemplate*{itemize/enumerate subbody begin}{default}{} \defbeamertemplate*{itemize/enumerate subbody end}{default}{} \defbeamertemplate*{itemize/enumerate subsubbody begin}{default}{} \defbeamertemplate*{itemize/enumerate subsubbody end}{default}{} % Alerted text \defbeamertemplate*{alerted text begin}{default}{\setbeamercolor{local structure}{parent=alerted text}} % Structured text % empyt defaults % Bibliography items \defbeamertemplate*{bibliography item}{default} {\lower3.5pt\hbox{\hskip2pt\pgfuseimage{beamericonarticle}\hskip1pt}} \defbeamertemplate*{bibliography entry article}{default}{} \defbeamertemplate*{bibliography entry title}{default}{\par} \defbeamertemplate*{bibliography entry location}{default}{\par} \defbeamertemplate*{bibliography entry note}{default}{\par} % Buttons \newdimen\beamer@dima% \newdimen\beamer@dimb% \defbeamertemplate*{button}{default} {% \setbox\beamer@tempbox=\hbox{{\insertbuttontext}}% \ht\beamer@tempbox=6pt% \dp\beamer@tempbox=0pt% \setbox\beamer@tempbox=\vbox{\box\beamer@tempbox\vskip2pt}% \beamer@tempdim=\wd\beamer@tempbox% \beamer@dima=\beamer@tempdim\advance\beamer@dima by2.2pt \beamer@dimb=\beamer@tempdim\advance\beamer@dimb by4pt \begin{pgfpicture}{-4pt}{0pt}{\the\beamer@tempdim}{8pt} \color{bg} \pgfsetlinewidth{0.8pt} \pgfqmoveto{0}{0} \pgfqcurveto{-2.2}{0}{-4}{1.8}{-4}{4} \pgfqcurveto{-4}{6.2}{-2.2}{8}{0}{8} \pgflineto{\pgfpoint{\the\beamer@tempdim}{8pt}} \pgfcurveto% {\pgfpoint{\the\beamer@dima}{8pt}}% {\pgfpoint{\the\beamer@dimb}{6.2pt}}% {\pgfpoint{\the\beamer@dimb}{4pt}} \pgfcurveto% {\pgfpoint{\the\beamer@dimb}{1.8pt}}% {\pgfpoint{\the\beamer@dima}{0pt}}% {\pgfpoint{\the\beamer@tempdim}{0pt}} \pgfclosepath \pgffill \colorlet{bg}{parent.bg} \usebeamercolor[fg]{button border} \pgfqmoveto{0}{0} \pgfqcurveto{-2.2}{0}{-4}{1.8}{-4}{4} \pgfqcurveto{-4}{6.2}{-2.2}{8}{0}{8} \pgflineto{\pgfpoint{\the\beamer@tempdim}{8pt}} \pgfcurveto% {\pgfpoint{\the\beamer@dima}{8pt}}% {\pgfpoint{\the\beamer@dimb}{6.2pt}}% {\pgfpoint{\the\beamer@dimb}{4pt}} \pgfcurveto% {\pgfpoint{\the\beamer@dimb}{1.8pt}}% {\pgfpoint{\the\beamer@dima}{0pt}}% {\pgfpoint{\the\beamer@tempdim}{0pt}} \pgfclosepath \pgfstroke \end{pgfpicture}% \hskip-\beamer@tempdim% \box\beamer@tempbox% \kern4pt% } % Abstract \defbeamertemplate*{abstract title}{default} {% \begin{center}% \abstractname \end{center}% } \defbeamertemplate*{abstract begin}{default} {\beamercolorbox[vmode]{abstract}\leftskip2em\rightskip2em plus 1fill\usebeamerfont*{abstract}} \defbeamertemplate*{abstract end}{default} {\medskip\endbeamercolorbox} % Verse \defbeamertemplate*{verse begin}{default} {\beamercolorbox[vmode]{verse}} \defbeamertemplate*{verse end}{default} {\endbeamercolorbox} % Quotation \defbeamertemplate*{quotation begin}{default} {\beamercolorbox[vmode]{quotation}} \defbeamertemplate*{quotation end}{default} {\endbeamercolorbox} % Quote \defbeamertemplate*{quote begin}{default} {\beamercolorbox[vmode]{quote}} \defbeamertemplate*{quote end}{default} {\endbeamercolorbox} % Footnotes \defbeamertemplate*{footnote}{default} { \parindent 1em\noindent% \raggedright \hbox to 1.8em{\hfil\insertfootnotemark}\insertfootnotetext\par% } % Captions \defbeamertemplate*{caption}{default} {% \raggedright {% \usebeamercolor[fg]{caption name}% \usebeamerfont*{caption name}% \insertcaptionname:% } \insertcaption\par } % Blocks \defbeamertemplateparent{blocks}{block begin,block end,% block alerted begin,block alerted end,% block example begin,block example end} {} \defbeamertemplate*{block begin}{default} { \par\vskip\medskipamount% \begin{beamercolorbox}[colsep*=.75ex]{block title} \usebeamerfont*{block title}\insertblockname% \end{beamercolorbox}% {\parskip0pt\par}% \ifbeamercolorempty[bg]{block title} {} {\ifbeamercolorempty[bg]{block body}{}{\nointerlineskip\vskip-0.5pt}}% \usebeamerfont{block body}% \begin{beamercolorbox}[colsep*=.75ex,vmode]{block body}\vskip-.75ex\vbox{}% } \defbeamertemplate*{block end}{default} {\end{beamercolorbox}\vskip\smallskipamount} \defbeamertemplate*{block alerted begin}{default} { \par\vskip\medskipamount% \begin{beamercolorbox}[colsep*=.75ex]{block title alerted} \usebeamerfont*{block title alerted}\insertblockname% \end{beamercolorbox}% {\parskip0pt\par}% \ifbeamercolorempty[bg]{block title alerted} {} {\ifbeamercolorempty[bg]{block body alerted}{}{\nointerlineskip\vskip-0.5pt}}% \usebeamerfont{block body alerted}% \begin{beamercolorbox}[colsep*=.75ex,vmode]{block body alerted}\vskip-.75ex\vbox{}% } \defbeamertemplate*{block alerted end}{default} {\end{beamercolorbox}\vskip\smallskipamount} \defbeamertemplate*{block example begin}{default} { \par\vskip\medskipamount% \begin{beamercolorbox}[colsep*=.75ex]{block title example} \usebeamerfont*{block title example}\insertblockname% \end{beamercolorbox}% {\parskip0pt\par}% \ifbeamercolorempty[bg]{block title example} {} {\ifbeamercolorempty[bg]{block body example}{}{\nointerlineskip\vskip-0.5pt}}% \usebeamerfont{block body example}% \begin{beamercolorbox}[colsep*=.75ex,vmode]{block body example}\vskip-.75ex\vbox{}% } \defbeamertemplate*{block example end}{default} {\end{beamercolorbox}\vskip\smallskipamount} % Theorems \defbeamertemplateparent{theorems}{theorem begin,theorem end} {} \defbeamertemplate*{theorem begin}{default} {% \begin{\inserttheoremblockenv} {% \inserttheoremname \ifx\inserttheoremaddition\@empty\else\ (\inserttheoremaddition)\fi% }% } \defbeamertemplate*{theorem end}{default} {\end{\inserttheoremblockenv}} % Proofs \defbeamertemplate*{proof begin}{default} {\begin{block}{\insertproofname}} \defbeamertemplate*{proof end}{default} {\end{block}} \defbeamertemplate*{qed symbol}{default} {\openbox} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/inner/beamerinnerthemeinmargin.sty000664 000000 000000 00000010155 12732552614 032374 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/inner/beamerinnerthemeinmargin.sty,v 1.3 2004/10/07 20:53:09 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \setbeamercolor*{sidebar}{parent=block title} \setbeamercolor{local structure}{parent=sidebar} \setbeamercolor{section in toc}{parent=sidebar} \setbeamercolor{button}{use=structure,bg=structure.fg!50!bg,fg=white} \setbeamercolor*{title}{parent=structure} \setbeamercolor{block title alerted}{use=sidebar,fg=sidebar.fg!25!red} \setbeamercolor{block title example}{use=sidebar,fg=sidebar.fg!50!green} \setbeamersize{text margin left=1.5ex} \setbeamersize{text margin right=1.5ex} \setbeamersize{sidebar width left=.25\paperwidth} \setlength\leftmargini{0pt} \setlength\leftmarginii{1.5ex} \setlength\leftmarginiii{1.5ex} \newcommand\beamer@putleft[2]{% \hbox to 0pt{\hss\vtop{% \normalsize% \@tempdima=.25\paperwidth% \advance\@tempdima by-3ex% \hsize=\@tempdima% \leftskip=0pt plus 1fill% \rightskip=0pt\relax% \leavevmode#1}\kern#2}% } \newenvironment{beamer@putright}{\vtop\bgroup\leavevmode}{\egroup} \defbeamertemplate*{section in toc}{inmargin} {\beamer@putleft{\inserttocsection\strut}{2.5ex}} \defbeamertemplate*{subsection in toc}{inmargin} {\leavevmode% %\beamer@putleft{\usebeamertemplate***{itemize item}}{1ex}% \inserttocsubsection\par\vskip.5ex} \def\inserttitleindicator{} \def\insertauthorindicator{Who?} \def\insertinstituteindicator{From?} \def\insertdateindicator{When?} \defbeamertemplate*{title page}{inmargin} { \begin{block}{\inserttitleindicator} \usebeamercolor[fg]{title}\usebeamerfont{title}\inserttitle\par \usebeamercolor[fg]{subtitle}\usebeamerfont{subtitle}\insertsubtitle \end{block} \vfill \ifx\insertauthor\@empty \else \begin{block}{\insertauthorindicator} \usebeamercolor[fg]{author}\usebeamerfont{author}\insertauthor\par \end{block} \fi \ifx\insertinstitute\@empty \else \begin{block}{\insertinstituteindicator} \usebeamercolor[fg]{institute}\usebeamerfont{institute}\insertinstitute\par \end{block} \fi \ifx\insertdate\@empty \else \begin{block}{\insertdateindicator} \usebeamercolor[fg]{date}\usebeamerfont{date}\insertdate\par \end{block} \fi } \defbeamertemplate*{block begin}{inmargin} { \par\vskip\medskipamount% \leavevmode% \beamer@putleft{\normalfont{\usebeamercolor[fg]{block title}\usebeamerfont*{block title}\insertblockname}}{2.5ex}% \beamer@putright\usebeamercolor[fg]{block body}% } \defbeamertemplate*{block end}{inmargin} {\endbeamer@putright\vskip\smallskipamount} \defbeamertemplate*{block alerted begin}{inmargin} { \par\vskip\medskipamount% \leavevmode% \beamer@putleft{\normalfont{\usebeamercolor[fg]{block title alerted}\usebeamerfont*{block title alerted}\insertblockname}}{2.5ex}% \beamer@putright\usebeamercolor[fg]{block body alerted}% } \defbeamertemplate*{block alerted end}{inmargin} {\endbeamer@putright\vskip\smallskipamount} \defbeamertemplate*{block example begin}{inmargin} { \par\vskip\medskipamount% \leavevmode% \beamer@putleft{\normalfont{\usebeamercolor[fg]{block title example}\usebeamerfont*{block title example}\insertblockname}}{2.5ex}% \beamer@putright\usebeamercolor[fg]{block body example}% } \defbeamertemplate*{block example end}{inmargin} {\endbeamer@putright\vskip\smallskipamount} \AtBeginDocument { \addtobeamertemplate{enumerate item}{\llap\bgroup}{\normalsize\kern1.5ex\egroup} \addtobeamertemplate{enumerate subitem}{\llap\bgroup}{\normalsize\kern1.5ex\kern\leftmarginii\egroup} \addtobeamertemplate{enumerate subsubitem}{\llap\bgroup}{\normalsize\kern1.5ex\kern\leftmarginii\kern\leftmarginiii\egroup} \addtobeamertemplate{itemize item}{\llap\bgroup}{\normalsize\kern1.5ex\egroup} \addtobeamertemplate{itemize subitem}{\llap\bgroup}{\normalsize\kern1.125ex\kern\leftmarginii\egroup} \addtobeamertemplate{itemize subsubitem}{\llap\bgroup}{\small\kern0.75ex\kern\leftmarginii\kern\leftmarginiii\egroup} } \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/inner/beamerinnerthemerectangles.sty000664 000000 000000 00000001027 12732552614 032715 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/inner/beamerinnerthemerectangles.sty,v 1.3 2004/10/07 20:53:09 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \setbeamertemplate{sections/subsections in toc}[square] \setbeamertemplate{items}[square] \mode %%% Local Variables: %%% TeX-master: "~/texmf/tex/latex/beamer/test/test.tex" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/themes/inner/beamerinnerthemerounded.sty000664 000000 000000 00000001646 12732552614 032235 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/inner/beamerinnerthemerounded.sty,v 1.4 2004/10/07 20:53:09 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \DeclareOptionBeamer{shadow}[true]{\def\beamer@themerounded@shadow{#1}} \ExecuteOptionsBeamer{shadow=false} \ProcessOptionsBeamer \mode \setbeamertemplate{blocks}[rounded][shadow=\beamer@themerounded@shadow] \setbeamertemplate{items}[ball] \setbeamertemplate{sections/subsections in toc}[ball] \setbeamertemplate{title page}[default][colsep=-4bp,rounded=true,shadow=\beamer@themerounded@shadow] \setbeamertemplate{part page}[default][colsep=-4bp,rounded=true,shadow=\beamer@themerounded@shadow] \mode %%% Local Variables: %%% TeX-master: "~/texmf/tex/latex/beamer/test/test.tex" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/themes/outer/000775 000000 000000 00000000000 12732552614 024615 5ustar00rootroot000000 000000 semantik-0.9.5/src/templates/beamer/beamermindist/themes/outer/beamerouterthemedefault.sty000664 000000 000000 00000010473 12732552614 032265 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/outer/beamerouterthemedefault.sty,v 1.6 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode % Mini frames \defbeamertemplateparent{mini frames}{mini frame,mini frame in current subsection} {} \defbeamertemplate*{mini frame}{default} {% \begin{pgfpicture}{0pt}{0pt}{0.1cm}{0.1cm} \pgfcircle[fillstroke]{\pgfpoint{0.05cm}{0.05cm}}{0.05cm} \end{pgfpicture}% } [action] { \setbeamersize{mini frame size=.14cm,mini frame offset=.03cm} } \defbeamertemplate*{mini frame in current subsection}{default} {% \begin{pgfpicture}{0pt}{0pt}{0.1cm}{0.1cm} \pgfcircle[stroke]{\pgfpoint{0.05cm}{0.05cm}}{0.05cm} \end{pgfpicture}% } \defbeamertemplate*{mini frame in other subsection}{default}[1][50] {\color{fg!#1!bg}\usebeamertemplate{mini frame in current subsection}} % Navigation symbols \defbeamertemplate*{navigation symbols}{default} {% \hbox{% \hbox{\insertslidenavigationsymbol} \hbox{\insertframenavigationsymbol} \hbox{\insertsubsectionnavigationsymbol} \hbox{\insertsectionnavigationsymbol} \hbox{\insertdocnavigationsymbol} \hbox{\insertbackfindforwardnavigationsymbol}% }% } % Section and subsections in head/foot \defbeamertemplate*{section in head/foot}{default} {\insertsectionhead} \defbeamertemplate*{section in head/foot shaded}{default}[1][50] {\color{fg!#1!bg}\usebeamertemplate{section in head/foot}} \defbeamertemplate*{subsection in head/foot}{default} {\insertsubsectionhead} \defbeamertemplate*{subsection in head/foot shaded}{default}[1][50] {\color{fg!#1!bg}\usebeamertemplate{subsection in head/foot}} % Headline and footline \defbeamertemplate*{headline}{default} {} \defbeamertemplate*{footline}{default} {} % background \defbeamertemplate*{background}{default} {} \defbeamertemplate*{background canvas}{default} {% \ifbeamercolorempty[bg]{background canvas}{}{\color{bg}\vrule width\paperwidth height\paperheight}% } % Sidebar \defbeamertemplate*{sidebar left}{default} {} \defbeamertemplate*{sidebar right}{default} { \vfill% \llap{\insertlogo\hskip0.1cm}% \vskip2pt% \llap{\usebeamertemplate***{navigation symbols}\hskip0.1cm}% \vskip2pt% } \defbeamertemplate*{sidebar canvas left}{default} {% \ifbeamercolorempty[bg]{sidebar left}{} {\color{bg}\vrule height\sidebarheight width\beamer@leftsidebar}% } \defbeamertemplate*{sidebar canvas right}{default} {% \ifbeamercolorempty[bg]{sidebar right}{} {\color{bg}\vrule height\sidebarheight width\beamer@rightsidebar}% } % Notes \defbeamertemplate*{note page}{default} {% {% \scriptsize \insertvrule{.25\paperheight}{white!90!black} \vskip-.25\paperheight \nointerlineskip \vbox{ \hfill\insertslideintonotes{0.25}\hskip-\Gm@rmargin\hskip0pt% \vskip-0.25\paperheight% \nointerlineskip \begin{pgfpicture}{0cm}{0cm}{0cm}{0cm} \begin{pgfrotateby}{\pgfdegree{90}} \pgfputat{\pgfpoint{-2cm}{0.2cm}}% {\pgfbox[base,left]{\footnotesize\the\year-\ifnum\month<10\relax0\fi\the\month-\ifnum\day<10\relax0\fi\the\day}} \end{pgfrotateby} \end{pgfpicture}} \nointerlineskip \vbox to .25\paperheight{\vskip0.5em \hbox{\insertshorttitle[width=8cm]}% \setbox\beamer@tempbox=\hbox{\insertsection}% \hbox{\ifdim\wd\beamer@tempbox>1pt{\hskip4pt\raise3pt\hbox{\vrule width0.4pt height7pt\vrule width 9pt height0.4pt}}\hskip1pt\hbox{\begin{minipage}[t]{7.5cm}\def\breakhere{}\insertsection\end{minipage}}\fi% }% \setbox\beamer@tempbox=\hbox{\insertsubsection}% \hbox{\ifdim\wd\beamer@tempbox>1pt{\hskip17.4pt\raise3pt\hbox{\vrule width0.4pt height7pt\vrule width 9pt height0.4pt}}\hskip1pt\hbox{\begin{minipage}[t]{7.5cm}\def\breakhere{}\insertsubsection\end{minipage}}\fi% }% \setbox\beamer@tempbox=\hbox{\insertshortframetitle}% \hbox{\ifdim\wd\beamer@tempbox>1pt{\hskip30.8pt\raise3pt\hbox{\vrule width0.4pt height7pt\vrule width 9pt height0.4pt}}\hskip1pt\hbox{\insertshortframetitle[width=7cm]}\fi% }% \vfil}% }% \vskip.25em \nointerlineskip \insertnote } \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/outer/beamerouterthemeinfolines.sty000664 000000 000000 00000003563 12732552614 032631 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/outer/beamerouterthemeinfolines.sty,v 1.7 2004/10/07 22:21:16 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \setbeamercolor*{author in head/foot}{parent=palette tertiary} \setbeamercolor*{title in head/foot}{parent=palette secondary} \setbeamercolor*{date in head/foot}{parent=palette primary} \setbeamercolor*{section in head/foot}{parent=palette tertiary} \setbeamercolor*{subsection in head/foot}{parent=palette primary} \defbeamertemplate*{footline}{infolines theme} { \leavevmode% \hbox{% \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}% \usebeamerfont{author in head/foot}\insertshortauthor~~(\insertshortinstitute) \end{beamercolorbox}% \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{title in head/foot}% \usebeamerfont{title in head/foot}\insertshorttitle \end{beamercolorbox}% \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,right]{date in head/foot}% \usebeamerfont{date in head/foot}\insertshortdate{}\hspace*{2em} \insertframenumber{} / \inserttotalframenumber\hspace*{2ex} \end{beamercolorbox}}% \vskip0pt% } \defbeamertemplate*{headline}{infolines theme} { \leavevmode% \hbox{% \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.25ex,dp=1ex,right]{section in head/foot}% \usebeamerfont{section in head/foot}\insertsection\hspace*{2ex} \end{beamercolorbox}% \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.25ex,dp=1ex,left]{subsection in head/foot}% \usebeamerfont{subsection in head/foot}\hspace*{2ex}\insertsubsection \end{beamercolorbox}}% \vskip0pt% } \setbeamersize{text margin left=1em,text margin right=1em} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/outer/beamerouterthememiniframes.sty000664 000000 000000 00000010417 12732552614 032771 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/outer/beamerouterthememiniframes.sty,v 1.5 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \setbeamercolor{section in head/foot}{parent=palette tertiary} \setbeamercolor{subsection in head/foot}{parent=palette secondary} \setbeamercolor{author in head/foot}{parent=subsection in head/foot} \setbeamercolor{title in head/foot}{parent=section in head/foot} \def\beamer@theme@footline@empty{} \def\beamer@theme@footline@authorinstitute{ \defbeamertemplate*{footline}{miniframes theme} {% \begin{beamercolorbox}[colsep=1.5pt]{upper separation line foot} \end{beamercolorbox} \begin{beamercolorbox}[ht=2.5ex,dp=1.125ex,% leftskip=.3cm,rightskip=.3cm plus1fil]{author in head/foot}% \leavevmode{\usebeamerfont{author in head/foot}\insertshortauthor}% \hfill% {\usebeamerfont{institute in head/foot}\usebeamercolor[fg]{institute in head/foot}\insertshortinstitute}% \end{beamercolorbox}% \begin{beamercolorbox}[colsep=1.5pt]{lower separation line foot} \end{beamercolorbox} } } \def\beamer@theme@footline@authortitle{ \defbeamertemplate*{footline}{miniframes theme} {% \begin{beamercolorbox}[colsep=1.5pt]{upper separation line foot} \end{beamercolorbox} \begin{beamercolorbox}[ht=2.5ex,dp=1.125ex,% leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}% \leavevmode{\usebeamerfont{title in head/foot}\insertshorttitle}% \hfill% {\usebeamerfont{author in head/foot}\usebeamercolor[fg]{author in head/foot}\insertshortauthor}% \end{beamercolorbox}% \begin{beamercolorbox}[colsep=1.5pt]{lower separation line foot} \end{beamercolorbox} } } \def\beamer@theme@footline@institutetitle{ \defbeamertemplate*{footline}{miniframes theme} {% \begin{beamercolorbox}[colsep=1.5pt]{upper separation line foot} \end{beamercolorbox} \begin{beamercolorbox}[ht=2.5ex,dp=1.125ex,% leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}% \leavevmode{\usebeamerfont{title in head/foot}\insertshorttitle}% \hfill% {\usebeamerfont{institute in head/foot}\usebeamercolor[fg]{institute in head/foot}\insertshortinstitute}% \end{beamercolorbox}% \begin{beamercolorbox}[colsep=1.5pt]{lower separation line foot} \end{beamercolorbox} } } \def\beamer@theme@footline@authorinstitutetitle{ \defbeamertemplate*{footline}{miniframes theme} {% \begin{beamercolorbox}[colsep=1.5pt]{upper separation line foot} \end{beamercolorbox} \begin{beamercolorbox}[ht=2.5ex,dp=1.125ex,% leftskip=.3cm,rightskip=.3cm plus1fil]{author in head/foot}% \leavevmode{\usebeamerfont{author in head/foot}\insertshortauthor}% \hfill% {\usebeamerfont{institute in head/foot}\usebeamercolor[fg]{institute in head/foot}\insertshortinstitute}% \end{beamercolorbox}% \begin{beamercolorbox}[ht=2.5ex,dp=1.125ex,% leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}% {\usebeamerfont{title in head/foot}\insertshorttitle}% \end{beamercolorbox}% \begin{beamercolorbox}[colsep=1.5pt]{lower separation line foot} \end{beamercolorbox} } } \newif\ifbeamer@theme@subsection \beamer@theme@subsectiontrue \DeclareOptionBeamer{footline}{\csname beamer@theme@footline@#1\endcsname} \DeclareOptionBeamer{subsection}[true]{\csname beamer@theme@subsection#1\endcsname} \ProcessOptionsBeamer \mode % Head \defbeamertemplate*{headline}{miniframes theme} {% \begin{beamercolorbox}[colsep=1.5pt]{upper separation line head} \end{beamercolorbox} \begin{beamercolorbox}{section in head/foot} \vskip2pt\insertnavigation{\paperwidth}\vskip2pt \end{beamercolorbox}% \ifbeamer@theme@subsection% \begin{beamercolorbox}[colsep=1.5pt]{middle separation line head} \end{beamercolorbox} \begin{beamercolorbox}[ht=2.5ex,dp=1.125ex,% leftskip=.3cm,rightskip=.3cm plus1fil]{subsection in head/foot} \usebeamerfont{subsection in head/foot}\insertsubsection \end{beamercolorbox}% \fi% \begin{beamercolorbox}[colsep=1.5pt]{lower separation line head} \end{beamercolorbox} } \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/outer/beamerouterthemeshadow.sty000664 000000 000000 00000004451 12732552614 032125 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/outer/beamerouterthemeshadow.sty,v 1.3 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \useoutertheme{split} \setbeamercolor{frametitle}{parent=subsection in head/foot} \setbeamercolor{frametitle right}{parent=section in head/foot} \pgfdeclarehorizontalshading[frametitle.bg,frametitle right.bg]{beamer@frametitleshade}{\paperheight}{% color(0pt)=(frametitle.bg); color(\paperwidth)=(frametitle right.bg)} \AtBeginDocument{ \pgfdeclareverticalshading{beamer@topshade}{\paperwidth}{% color(0pt)=(bg); color(4pt)=(black!50!bg)} } \addtobeamertemplate{headline} {} {% \vskip-0.2pt \pgfuseshading{beamer@topshade} \vskip-2pt } \defbeamertemplate*{frametitle}{shadow theme} {% \nointerlineskip% \vskip-2pt% \hbox{\leavevmode \advance\beamer@leftmargin by -12bp% \advance\beamer@rightmargin by -12bp% \beamer@tempdim=\textwidth% \advance\beamer@tempdim by \beamer@leftmargin% \advance\beamer@tempdim by \beamer@rightmargin% \hskip-\Gm@lmargin\hbox{% \setbox\beamer@tempbox=\hbox{\begin{minipage}[b]{\paperwidth}% \vbox{}\vskip-.75ex% \leftskip0.3cm% \rightskip0.3cm plus1fil\leavevmode \insertframetitle% \ifx\insertframesubtitle\@empty% \strut\par% \else \par{\usebeamerfont*{framesubtitle}{\usebeamercolor[fg]{framesubtitle}\insertframesubtitle}\strut\par}% \fi% \nointerlineskip \vbox{}% \end{minipage}}% \beamer@tempdim=\ht\beamer@tempbox% \advance\beamer@tempdim by 2pt% \begin{pgfpicture}{0pt}{0pt}{\paperwidth}{\beamer@tempdim} \usebeamercolor{frametitle right} \pgfrect[clip]{\pgforigin}{\pgfpoint{\paperwidth}{\beamer@tempdim}} \pgfbox[left,base]{\pgfuseshading{beamer@frametitleshade}} \end{pgfpicture} \hskip-\paperwidth% \box\beamer@tempbox% }% \hskip-\Gm@rmargin% }% \nointerlineskip \vskip-0.2pt \hbox to\textwidth{\hskip-\Gm@lmargin\pgfuseshading{beamer@topshade}\hskip-\Gm@rmargin} \vskip-2pt } \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/outer/beamerouterthemesidebar.sty000664 000000 000000 00000010661 12732552614 032251 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/outer/beamerouterthemesidebar.sty,v 1.7 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \newdimen\beamer@sidebarwidth \newdimen\beamer@headheight \usebeamerfont{frametitle} \beamer@sidebarwidth=2.5\baselineskip \beamer@headheight=2.5\baselineskip \reset@font \def\beamer@lefttext{left} \DeclareOptionBeamer{hideothersubsections}[]{\beamer@nav@subsectionstyle{show/show/hide}} \DeclareOptionBeamer{hideallsubsections}[]{\beamer@nav@subsectionstyle{hide}} \DeclareOptionBeamer{width}{\beamer@sidebarwidth=#1} \DeclareOptionBeamer{height}{\beamer@headheight=#1} \DeclareOptionBeamer{left}{\def\beamer@sidebarside{left}} \DeclareOptionBeamer{right}{\def\beamer@sidebarside{right}} \ExecuteOptionsBeamer{left} \ProcessOptionsBeamer \mode \ifdim\beamer@headheight>0pt % if head height is 0pt, use default frame title \setbeamercolor*{frametitle}{parent=sidebar} \defbeamertemplate*{frametitle}{sidebar theme} {% \nointerlineskip% \vskip-\beamer@headheight% \vbox to \beamer@headheight{% \vfil \leftskip=-\beamer@leftmargin% \advance\leftskip by0.3cm% \rightskip=-\beamer@rightmargin% \advance\rightskip by0.3cm plus1fil% {\usebeamercolor[fg]{frametitle}\usebeamerfont{frametitle}\insertframetitle\par}% {\usebeamercolor[fg]{framesubtitle}\usebeamerfont{framesubtitle}\insertframesubtitle\par}% \vbox{}% \vskip-1em% \vfil }% } \defbeamertemplate*{headline}{sidebar theme} {% \begin{beamercolorbox}[wd=\paperwidth]{frametitle} \ifx\beamer@sidebarside\beamer@lefttext% \else% \hfill% \fi% \ifdim\beamer@sidebarwidth>0pt% \usebeamercolor[bg]{logo}% \vrule width\beamer@sidebarwidth height \beamer@headheight% \hskip-\beamer@sidebarwidth% \hbox to \beamer@sidebarwidth{\hss\vbox to \beamer@headheight{\vss\hbox{\color{fg}\insertlogo}\vss}\hss}% \else% \vrule width0pt height \beamer@headheight% \fi% \end{beamercolorbox} } \fi \def\beamer@sidebarformat#1#2#3{% \begin{beamercolorbox}[wd=\beamer@sidebarwidth,leftskip=#1,rightskip=1ex plus1fil,vmode]{#2} \vbox{}% #3\par% \vbox{}% \vskip-1.5ex% \end{beamercolorbox} } \defbeamertemplate*{section in sidebar}{sidebar theme} {% \vbox{% \vskip1ex% \beamer@sidebarformat{3pt}{section in sidebar}{\insertsectionhead}% }% } \defbeamertemplate*{section in sidebar shaded}{sidebar theme} {% \vbox{% \vskip1ex% \beamer@sidebarformat{3pt}{section in sidebar shaded}{\insertsectionhead}% }% } \defbeamertemplate*{subsection in sidebar}{sidebar theme} {% \beamer@sidebarformat{5pt}{subsection in sidebar}{\insertsubsectionhead}% } \defbeamertemplate*{subsection in sidebar shaded}{sidebar theme} {% \beamer@sidebarformat{5pt}{subsection in sidebar shaded}{\insertsubsectionhead}% } \ifdim\beamer@sidebarwidth>0pt % Sidebar \setbeamersize{sidebar width \beamer@sidebarside=\beamer@sidebarwidth} \defbeamertemplate*{sidebar \beamer@sidebarside}{sidebar theme} { \beamer@tempdim=\beamer@sidebarwidth% \advance\beamer@tempdim by -6pt% {\usebeamerfont{title in sidebar}% \vskip1.5em% \hskip3pt% \usebeamercolor[fg]{title in sidebar}% \insertshorttitle[width=\beamer@tempdim,center,respectlinebreaks]\par% \vskip1.25em% }% {% \hskip3pt% \usebeamercolor[fg]{author in sidebar}% \usebeamerfont{author in sidebar}% \insertshortauthor[width=\beamer@tempdim,center,respectlinebreaks]\par% \vskip1.25em% }% \insertverticalnavigation{\beamer@sidebarwidth}% \vfill \ifx\beamer@sidebarside\beamer@lefttext% \else% \usebeamercolor{normal text}% \llap{\usebeamertemplate***{navigation symbols}\hskip0.1cm}% \vskip2pt% \fi% }% \ifx\beamer@sidebarside\beamer@lefttext% \defbeamertemplate*{sidebar right}{sidebar theme} {% \vfill% \llap{\usebeamertemplate***{navigation symbols}\hskip0.1cm}% \vskip2pt} \fi % Margins \setbeamersize{text margin left=0.5cm,text margin right=0.5cm} \fi \mode %%% Local Variables: %%% TeX-master: "~/texmf/tex/latex/beamer/test/test.tex" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/themes/outer/beamerouterthemesmoothbars.sty000664 000000 000000 00000006704 12732552614 033024 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/outer/beamerouterthemesmoothbars.sty,v 1.4 2004/10/07 22:21:16 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \newif\ifbeamer@sb@subsection \DeclareOptionBeamer{subsection}[true]{\csname beamer@sb@subsection#1\endcsname} \ExecuteOptionsBeamer{subsection=true} \ProcessOptionsBeamer \mode \setbeamercolor{frametitle}{parent=palette primary} \setbeamercolor{subsection in head/foot}{parent=palette secondary} \setbeamercolor{section in head/foot}{parent=palette quaternary} \beamer@compresstrue \AtBeginDocument{ { \usebeamerfont*{headline} \colorlet{global.bg}{bg} \usebeamercolor{subsection in head/foot} \usebeamercolor{section in head/foot} \usebeamercolor{frametitle} \ifbeamer@sb@subsection \pgfdeclareverticalshading{beamer@barshade}{\the\paperwidth}{% color(0ex)=(global.bg);% color(1ex)=(subsection in head/foot.bg);% color(3.25ex)=(subsection in head/foot.bg);% color(4.25ex)=(section in head/foot.bg);% color(9.75ex)=(section in head/foot.bg)% } \pgfdeclareverticalshading{beamer@aboveframetitle}{\the\paperwidth}{% color(0ex)=(frametitle.bg);% color(1ex)=(frametitle.bg);% color(2ex)=(subsection in head/foot.bg) } \else \pgfdeclareverticalshading{beamer@barshade}{\the\paperwidth}{% color(0ex)=(global.bg);% color(1ex)=(section in head/foot.bg);% color(7ex)=(section in head/foot.bg)% } \pgfdeclareverticalshading{beamer@aboveframetitle}{\the\paperwidth}{% color(0ex)=(frametitle.bg);% color(1ex)=(frametitle.bg);% color(2ex)=(section in head/foot.bg) } \fi \pgfdeclareverticalshading{beamer@belowframetitle}{\the\paperwidth}{% color(0ex)=(global.bg);% color(1ex)=(frametitle.bg) } } } % Head \defbeamertemplate*{headline}{smoothbars theme} {% \pgfuseshading{beamer@barshade}% \ifbeamer@sb@subsection% \vskip-9.75ex% \else% \vskip-7ex% \fi% \begin{beamercolorbox}[ignorebg,ht=2.25ex,dp=3.75ex]{section in head/foot} \insertnavigation{\paperwidth} \end{beamercolorbox}% \ifbeamer@sb@subsection% \begin{beamercolorbox}[ignorebg,ht=2.125ex,dp=1.125ex,% leftskip=.3cm,rightskip=.3cm plus1fil]{subsection in head/foot} \usebeamerfont{subsection in head/foot}\insertsubsection \end{beamercolorbox}% \fi% }% \defbeamertemplate*{frametitle}{smoothbars theme} {% \nointerlineskip% \usebeamerfont{headline}% \begin{beamercolorbox}[wd=\paperwidth,ht=1.5ex,dp=0ex,vmode]{empty} \pgfuseshading{beamer@aboveframetitle}% \end{beamercolorbox}% \vskip-.5ex% \nointerlineskip% \begin{beamercolorbox}[wd=\paperwidth,leftskip=.3cm,rightskip=.3cm plus1fil,vmode]{frametitle} \usebeamerfont*{frametitle}\insertframetitle% \ifx\insertframesubtitle\@empty% \strut\par% \else \par{\usebeamerfont*{framesubtitle}{\usebeamercolor[fg]{framesubtitle}\insertframesubtitle}\strut\par}% \fi%% \usebeamerfont{headline}% \vskip.5ex \end{beamercolorbox}% \nointerlineskip \begin{beamercolorbox}[wd=\paperwidth,ht=.5ex,dp=0ex]{empty} \pgfuseshading{beamer@belowframetitle}% \end{beamercolorbox}% } \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/outer/beamerouterthemesmoothtree.sty000664 000000 000000 00000005737 12732552614 033041 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/outer/beamerouterthemesmoothtree.sty,v 1.3 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \setbeamercolor{frametitle}{parent=palette primary} \AtBeginDocument{ { \usebeamerfont*{headline} \usebeamercolor{normal text} \usebeamercolor{title in head/foot} \usebeamercolor{subsection in head/foot} \usebeamercolor{section in head/foot} \usebeamercolor{frametitle} \pgfdeclareverticalshading{beamer@treeshade}{\the\paperwidth}{% color(0ex)=(normal text.bg);% color(1ex)=(subsection in head/foot.bg);% color(3.25ex)=(subsection in head/foot.bg);% color(4.25ex)=(section in head/foot.bg);% color(6.5ex)=(section in head/foot.bg);% color(7.5ex)=(title in head/foot.bg);% color(10.25ex)=(title in head/foot.bg)% } \pgfdeclareverticalshading{beamer@aboveframetitle}{\the\paperwidth}{% color(0ex)=(frametitle.bg);% color(1ex)=(frametitle.bg);% color(2ex)=(subsection in head/foot.bg) } \pgfdeclareverticalshading{beamer@belowframetitle}{\the\paperwidth}{% color(0ex)=(normal text.bg);% color(1ex)=(frametitle.bg) } } } \defbeamertemplate*{headline}{smoothtree theme} {% \pgfuseshading{beamer@treeshade}% \vskip-10.25ex% \begin{beamercolorbox}[wd=\paperwidth,ht=2.125ex,dp=1.125ex,ignorebg,% leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot} \usebeamerfont{title in head/foot}\insertshorttitle \end{beamercolorbox} \begin{beamercolorbox}[wd=\paperwidth,ht=2.125ex,dp=1.125ex,ignorebg,% leftskip=.3cm,rightskip=.3cm plus1fil]{section in head/foot} \usebeamerfont{section in head/foot}% \hskip6pt\insertsection \end{beamercolorbox} \begin{beamercolorbox}[wd=\paperwidth,ht=2.125ex,dp=1.125ex,ignorebg,% leftskip=.3cm,rightskip=.3cm plus1fil]{subsection in head/foot} \usebeamerfont{subsection in head/foot}% \hskip12pt\insertsubsection \end{beamercolorbox} } \defbeamertemplate*{frametitle}{smoothtree theme} {% \nointerlineskip% \usebeamerfont{headline}% \begin{beamercolorbox}[wd=\paperwidth,ht=1.5ex,dp=0ex]{empty} \pgfuseshading{beamer@aboveframetitle}% \end{beamercolorbox}% \vskip-.5ex% \nointerlineskip% \begin{beamercolorbox}[wd=\paperwidth,leftskip=.935cm,rightskip=.3cm plus1fil]{frametitle} \usebeamerfont*{frametitle}\insertframetitle% \ifx\insertframesubtitle\@empty% \strut\par% \else \par{\usebeamerfont*{framesubtitle}{\usebeamercolor[fg]{framesubtitle}\insertframesubtitle}\strut\par}% \fi%% \usebeamerfont{headline}% \vskip.5ex \end{beamercolorbox}% \nointerlineskip \begin{beamercolorbox}[wd=\paperwidth,ht=.5ex,dp=0ex]{empty} \pgfuseshading{beamer@belowframetitle}% \end{beamercolorbox}% } \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/outer/beamerouterthemesplit.sty000664 000000 000000 00000004564 12732552614 032000 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/outer/beamerouterthemesplit.sty,v 1.4 2004/10/07 22:21:16 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \setbeamercolor{section in head/foot}{parent=palette quaternary} \setbeamercolor{subsection in head/foot}{parent=palette primary} \setbeamercolor{author in head/foot}{parent=section in head/foot} \setbeamercolor{title in head/foot}{parent=subsection in head/foot} \usesectionheadtemplate {\hfill\insertsectionhead} {\hfill\color{fg!50!bg}\insertsectionhead} % Head \ifbeamer@compress \defbeamertemplate*{headline}{split theme} {% \leavevmode% \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex]{section in head/foot}% \insertsectionnavigationhorizontal{.5\paperwidth}{\hskip0pt plus1filll}{}% \end{beamercolorbox}% \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex]{subsection in head/foot}% \insertsubsectionnavigationhorizontal{.5\paperwidth}{}{\hskip0pt plus1filll}% \end{beamercolorbox}% } \else \defbeamertemplate*{headline}{split theme} {% \leavevmode% \@tempdimb=2.4375ex% \ifnum\beamer@subsectionmax<\beamer@sectionmax% \multiply\@tempdimb by\beamer@sectionmax% \else% \multiply\@tempdimb by\beamer@subsectionmax% \fi% \ifdim\@tempdimb>0pt% \advance\@tempdimb by 1.125ex% \begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{section in head/foot}% \vbox to\@tempdimb{\vfil\insertsectionnavigation{.5\paperwidth}\vfil}% \end{beamercolorbox}% \begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{subsection in head/foot}% \vbox to\@tempdimb{\vfil\insertsubsectionnavigation{.5\paperwidth}\vfil}% \end{beamercolorbox}% \fi% } \fi \defbeamertemplate*{footline}{split theme} {% \leavevmode% \hbox{\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm plus1fill,rightskip=.3cm]{author in head/foot}% \usebeamerfont{author in head/foot}\insertshortauthor \end{beamercolorbox}% \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}% \usebeamerfont{title in head/foot}\insertshorttitle \end{beamercolorbox}}% \vskip0pt% } \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/outer/beamerouterthemetree.sty000664 000000 000000 00000003776 12732552614 031610 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/outer/beamerouterthemetree.sty,v 1.3 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \newif\ifbeamer@tree@showhooks \beamer@tree@showhookstrue \DeclareOptionBeamer{hooks}[true]{\csname beamer@tree@showhooks#1\endcsname} \ProcessOptionsBeamer \mode \defbeamertemplate*{headline}{tree theme} {% \begin{beamercolorbox}[wd=\paperwidth,colsep=1.5pt]{upper separation line head} \end{beamercolorbox} \begin{beamercolorbox}[wd=\paperwidth,ht=2.5ex,dp=1.125ex,% leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot} \usebeamerfont{title in head/foot}\insertshorttitle \end{beamercolorbox} \begin{beamercolorbox}[wd=\paperwidth,ht=2.5ex,dp=1.125ex,% leftskip=.3cm,rightskip=.3cm plus1fil]{section in head/foot} \usebeamerfont{section in head/foot}% \ifbeamer@tree@showhooks \setbox\beamer@tempbox=\hbox{\insertsection}% \ifdim\wd\beamer@tempbox>1pt% \hskip2pt\raise1.9pt\hbox{\vrule width0.4pt height1.875ex\vrule width 5pt height0.4pt}% \hskip1pt% \fi% \else% \hskip6pt% \fi% \insertsection \end{beamercolorbox} \begin{beamercolorbox}[wd=\paperwidth,ht=2.5ex,dp=1.125ex,% leftskip=.3cm,rightskip=.3cm plus1fil]{subsection in head/foot} \usebeamerfont{subsection in head/foot}% \ifbeamer@tree@showhooks \setbox\beamer@tempbox=\hbox{\insertsubsection}% \ifdim\wd\beamer@tempbox>1pt% \hskip9.4pt\raise1.9pt\hbox{\vrule width0.4pt height1.875ex\vrule width 5pt height0.4pt}% \hskip1pt% \fi% \else% \hskip12pt% \fi% \insertsubsection \end{beamercolorbox} \begin{beamercolorbox}[wd=\paperwidth,colsep=1.5pt]{lower separation line head} \end{beamercolorbox} } \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/000775 000000 000000 00000000000 12732552614 024561 5ustar00rootroot000000 000000 semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeAntibes.sty000664 000000 000000 00000000737 12732552614 031115 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeAntibes.sty,v 1.9 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \useoutertheme{tree} \usecolortheme{whale} \usecolortheme{orchid} \useinnertheme{rectangles} \setbeamerfont{block title}{size={}} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeBergen.sty000664 000000 000000 00000000721 12732552614 030723 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeBergen.sty,v 1.3 2004/10/07 22:21:16 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \usecolortheme{orchid} \useinnertheme{rectangles} \useinnertheme{inmargin} \setbeamercolor{item projected}{fg=black} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeBerkeley.sty000664 000000 000000 00000002153 12732552614 031264 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeBerkeley.sty,v 1.10 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \DeclareOptionBeamer{hideothersubsections}{\PassOptionsToPackage{hideothersubsections=#1}{beamerouterthemesidebar}} \DeclareOptionBeamer{hideallsubsections}{\PassOptionsToPackage{hideallsubsections=#1}{beamerouterthemesidebar}} \DeclareOptionBeamer{width}{\PassOptionsToPackage{width=#1}{beamerouterthemesidebar}} \DeclareOptionBeamer{left}{\PassOptionsToPackage{left}{beamerouterthemesidebar}} \DeclareOptionBeamer{right}{\PassOptionsToPackage{right}{beamerouterthemesidebar}} \ProcessOptionsBeamer \mode \useoutertheme{sidebar} \useinnertheme{rectangles} \usecolortheme{whale} \usecolortheme{orchid} \setbeamercolor*{frametitle}{parent=palette primary} \setbeamerfont{block title}{size={}} \mode %%% Local Variables: %%% TeX-master: "~/texmf/tex/latex/beamer/test/test.tex" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeBerlin.sty000664 000000 000000 00000001120 12732552614 030726 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeBerlin.sty,v 1.10 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \DeclareOptionBeamer{compress}{\beamer@compresstrue} \ProcessOptionsBeamer \mode \useoutertheme[footline=authorinstitutetitle]{miniframes} \usecolortheme{whale} \usecolortheme{orchid} \useinnertheme{rectangles} \setbeamerfont{block title}{size={}} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeCopenhagen.sty000664 000000 000000 00000000741 12732552614 031572 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeCopenhagen.sty,v 1.7 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \useoutertheme{split} \useinnertheme{rounded} \usecolortheme{whale} \usecolortheme{orchid} \setbeamerfont{block title}{size={}} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeDarmstadt.sty000664 000000 000000 00000000762 12732552614 031451 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeDarmstadt.sty,v 1.8 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \useoutertheme{smoothbars} \useinnertheme[shadow=true]{rounded} \usecolortheme{orchid} \usecolortheme{whale} \setbeamerfont{block title}{size={}} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeDresden.sty000664 000000 000000 00000001046 12732552614 031106 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeDresden.sty,v 1.8 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \DeclareOptionBeamer{compress}{\beamer@compresstrue} \ProcessOptionsBeamer \mode \useoutertheme[footline=authorinstitutetitle]{miniframes} \usecolortheme{whale} \setbeamercolor{titlelike}{parent=structure} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeFrankfurt.sty000664 000000 000000 00000001003 12732552614 031455 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeFrankfurt.sty,v 1.8 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \useoutertheme[subsection=false]{smoothbars} \useinnertheme[shadow=true]{rounded} \usecolortheme{orchid} \usecolortheme{whale} \setbeamerfont{block title}{size={}} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeGoettingen.sty000664 000000 000000 00000002171 12732552614 031625 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeGoettingen.sty,v 1.6 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \DeclareOptionBeamer{hideothersubsections}{\PassOptionsToPackage{hideothersubsections}{beamerouterthemesidebar}} \DeclareOptionBeamer{hideallsubsections}{\PassOptionsToPackage{hideallsubsections}{beamerouterthemesidebar}} \PassOptionsToPackage{right}{beamerouterthemesidebar} \PassOptionsToPackage{width=2cm}{beamerouterthemesidebar} \DeclareOptionBeamer{width}{\PassOptionsToPackage{width=#1}{beamerouterthemesidebar}} \DeclareOptionBeamer{left}{\PassOptionsToPackage{left}{beamerouterthemesidebar}} \DeclareOptionBeamer{right}{\PassOptionsToPackage{right}{beamerouterthemesidebar}} \ProcessOptionsBeamer \mode \useoutertheme[height=0pt]{sidebar} {\usebeamercolor{structure}} \setbeamertemplate{sidebar canvas \beamer@sidebarside}[vertical shading][top=structure.fg!25,bottom=structure.fg!10] \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeHannover.sty000664 000000 000000 00000001557 12732552614 031311 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeHannover.sty,v 1.9 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \DeclareOptionBeamer{width} {\PassOptionsToPackage{width=#1}{beamerouterthemesidebar}} \DeclareOptionBeamer{hideothersubsections} {\PassOptionsToPackage{hideothersubsections=#1}{beamerouterthemesidebar}} \DeclareOptionBeamer{hideallsubsections} {\PassOptionsToPackage{hideallsubsections=#1}{beamerouterthemesidebar}} \ProcessOptionsBeamer \mode \useoutertheme[height=0pt,left]{sidebar} \usecolortheme{seahorse} \setbeamercolor*{titlelike}{parent=structure} \useinnertheme{circles} \setbeamertemplate{frametitle}[default][right] \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeIlmenau.sty000664 000000 000000 00000001117 12732552614 031113 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeIlmenau.sty,v 1.10 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \DeclareOptionBeamer{compress}{\beamer@compresstrue} \ProcessOptionsBeamer \mode \useoutertheme[footline=authorinstitutetitle]{miniframes} \usecolortheme{whale} \usecolortheme{orchid} \useinnertheme{rounded} \setbeamerfont{block title}{size={}} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeJuanLesPins.sty000664 000000 000000 00000000764 12732552614 031723 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeJuanLesPins.sty,v 1.8 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \useoutertheme{smoothtree} \usecolortheme{whale} \usecolortheme{orchid} \useinnertheme[shadow=true]{rounded} \setbeamerfont{block title}{size={}} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeLuebeck.sty000664 000000 000000 00000000742 12732552614 031076 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeLuebeck.sty,v 1.7 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \useoutertheme{split} \useinnertheme{rectangles} \usecolortheme{whale} \usecolortheme{orchid} \setbeamerfont{block title}{size={}} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeMadrid.sty000664 000000 000000 00000001572 12732552614 030726 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeMadrid.sty,v 1.7 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \newif\ifbeamer@secheader \beamer@secheaderfalse \DeclareOptionBeamer{secheader}{\beamer@secheadertrue} \ProcessOptionsBeamer \usecolortheme{whale} \usecolortheme{orchid} \useinnertheme[shadow]{rounded} \useoutertheme{infolines} \ifbeamer@secheader\else\setbeamertemplate{headline}[default]\fi % Tills' opinion: should be done in an inner theme, not here. %\usesubitemizeitemtemplate{\tiny\raise1.5pt\hbox{\donotcoloroutermaths$\blacktriangleright$}} %\usesubsubitemizeitemtemplate{\tiny\raise1.5pt\hbox{\donotcoloroutermaths$\bigstar$}} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeMalmoe.sty000664 000000 000000 00000000666 12732552614 030743 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeMalmoe.sty,v 1.6 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \useoutertheme{split} \usecolortheme{whale} \setbeamercolor*{titlelike}{parent=structure} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeMarburg.sty000664 000000 000000 00000002467 12732552614 031131 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeMarburg.sty,v 1.9 2004/10/07 22:21:16 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \PassOptionsToPackage{right}{beamerouterthemesidebar} \PassOptionsToPackage{width=2cm}{beamerouterthemesidebar} \DeclareOptionBeamer{hideothersubsections}{\PassOptionsToPackage{hideothersubsections=#1}{beamerouterthemesidebar}} \DeclareOptionBeamer{hideallsubsections}{\PassOptionsToPackage{hideallsubsections=#1}{beamerouterthemesidebar}} \DeclareOptionBeamer{width}{\PassOptionsToPackage{width=#1}{beamerouterthemesidebar}} \DeclareOptionBeamer{left}{\PassOptionsToPackage{left}{beamerouterthemesidebar}} \DeclareOptionBeamer{right}{\PassOptionsToPackage{right}{beamerouterthemesidebar}} \ProcessOptionsBeamer \mode \usecolortheme{whale} \setbeamercolor*{titlelike}{use=structure,fg=structure.fg} \useoutertheme[height=0pt]{sidebar} \setbeamercolor{sidebar}{parent=palette primary} {\usebeamercolor{palette quaternary}} {\usebeamercolor{palette primary}} \setbeamertemplate{sidebar canvas \beamer@sidebarside}[vertical shading][top=palette quaternary.bg,bottom=palette primary.bg] \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeMontpellier.sty000664 000000 000000 00000000673 12732552614 032021 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeMontpellier.sty,v 1.5 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \useoutertheme{tree} \setbeamercolor{separation line}{use=structure,bg=structure.fg!50!bg} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemePaloAlto.sty000664 000000 000000 00000002163 12732552614 031236 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemePaloAlto.sty,v 1.10 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \DeclareOptionBeamer{hideothersubsections}{\PassOptionsToPackage{hideothersubsections=#1}{beamerouterthemesidebar}} \DeclareOptionBeamer{hideallsubsections}{\PassOptionsToPackage{hideallsubsections=#1}{beamerouterthemesidebar}} \DeclareOptionBeamer{width}{\PassOptionsToPackage{width=#1}{beamerouterthemesidebar}} \DeclareOptionBeamer{left}{\PassOptionsToPackage{left}{beamerouterthemesidebar}} \DeclareOptionBeamer{right}{\PassOptionsToPackage{right}{beamerouterthemesidebar}} \ProcessOptionsBeamer \mode \useoutertheme{sidebar} \useinnertheme[shadow=true]{rounded} \usecolortheme{orchid} \usecolortheme{whale} \setbeamercolor*{frametitle}{parent=palette primary} \setbeamerfont{block title}{size={}} \mode %%% Local Variables: %%% TeX-master: "~/texmf/tex/latex/beamer/test/test.tex" %%% End: semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemePittsburgh.sty000664 000000 000000 00000000647 12732552614 031663 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemePittsburgh.sty,v 1.4 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \setbeamertemplate{frametitle}[default][right] \useinnertheme{circles} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeRochester.sty000664 000000 000000 00000001223 12732552614 031455 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeRochester.sty,v 1.7 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \DeclareOptionBeamer{height}{\PassOptionsToPackage{height=#1}{beamerouterthemesidebar}} \ProcessOptionsBeamer \mode \useoutertheme[width=0pt]{sidebar} \useinnertheme{rectangles} \usecolortheme{whale} \usecolortheme{orchid} \setbeamercolor*{frametitle}{parent=palette primary} \setbeamerfont{block title}{size={}} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeSingapore.sty000664 000000 000000 00000001662 12732552614 031455 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeSingapore.sty,v 1.8 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \DeclareOptionBeamer{compress}{\beamer@compresstrue} \ProcessOptionsBeamer \mode \setbeamercolor{section in head/foot}{use=structure,bg=structure.fg!25!bg} \useoutertheme[subsection=false]{miniframes} \setbeamertemplate{frametitle}[default][center] \AtBeginDocument{% { \usebeamercolor{section in head/foot} } \pgfdeclareverticalshading{beamer@headfade}{\paperwidth} {% color(0cm)=(bg); color(1.25cm)=(section in head/foot.bg)% } \setbeamercolor{section in head/foot}{bg=} } \addtoheadtemplate{\pgfuseshading{beamer@headfade}\vskip-1.25cm}{} \beamertemplatedotitem \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeSzeged.sty000664 000000 000000 00000001042 12732552614 030737 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeSzeged.sty,v 1.5 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \DeclareOptionBeamer{compress}{\beamer@compresstrue} \ProcessOptionsBeamer \mode \useoutertheme[footline=institutetitle]{miniframes} \setbeamercolor{separation line}{use=structure,bg=structure.fg!50!bg} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeWarsaw.sty000664 000000 000000 00000000752 12732552614 030771 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeWarsaw.sty,v 1.8 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \useinnertheme[shadow=true]{rounded} \useoutertheme{shadow} \usecolortheme{orchid} \usecolortheme{whale} \setbeamerfont{block title}{size={}} \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemeboxes.sty000664 000000 000000 00000007103 12732552614 030642 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemeboxes.sty,v 1.6 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \DeclareOptionBeamer{headheight}{\beamer@boxheadheight=#1} \DeclareOptionBeamer{footheight}{\beamer@boxfootheight=#1} \newdimen\beamer@boxheadheight \newdimen\beamer@boxfootheight \beamer@boxheadheight=10pt \beamer@boxfootheight=10pt \ProcessOptionsBeamer % For example: %\addheadboxtemplate{\color{black}}{\hfill\color{white}\insertshorttitle\hskip0.3cm} %\addheadboxtemplate{\color{structure}}{\hskip0.3cm\color{white}\insertshortauthor} %\addfootboxtemplate{\color{black}}{\hfill\color{white}\insertshortinstitute\hskip0.3cm} %\addfootboxtemplate{\color{structure}}{} %\addfootboxtemplate{\color{black}}{\hfill\color{white}\insertframenumber\hskip0.3cm} \mode % Head \newcount\beamer@headboxes \newdimen\beamer@headboxsizes \newcount\beamer@currentbox \def\addheadboxtemplate#1#2{ \expandafter\def\csname beamer@headbox\the\beamer@headboxes\endcsname{#2} \expandafter\def\csname beamer@headbg\the\beamer@headboxes\endcsname{#1} \advance\beamer@headboxes by 1\relax \beamer@headboxsizes=\paperwidth \divide\beamer@headboxsizes by\beamer@headboxes } \def\addheadbox#1#2{\addheadboxtemplate{\usebeamercolor[bg]{#1}}{\usebeamercolor[fg]{#1}#2}} \defbeamertemplate*{headline}{boxes theme} {% \leavevmode \beamer@currentbox=0\relax% \loop% \ifnum\beamer@currentbox<\beamer@headboxes% \hbox to\beamer@headboxsizes{% % Background {% \csname beamer@headbg\the\beamer@currentbox\endcsname% \vrule width\beamer@headboxsizes height\beamer@boxheadheight% \hskip-\beamer@headboxsizes% }% % Box {% \setbox\beamer@tempbox=\hbox to\beamer@headboxsizes{% \csname beamer@headbox\the\beamer@currentbox\endcsname\hfil}% \dp\beamer@tempbox=0pt% \setbox\beamer@tempbox=\hbox{\vbox{\box\beamer@tempbox\vskip3pt}}% \ht\beamer@tempbox=\beamer@boxheadheight% \dp\beamer@tempbox=0pt% \box\beamer@tempbox% }}% \advance\beamer@currentbox by 1% \repeat% }% % Foot \newcount\beamer@footboxes \newdimen\beamer@footboxsizes \def\addfootboxtemplate#1#2{ \expandafter\def\csname beamer@footbox\the\beamer@footboxes\endcsname{#2} \expandafter\def\csname beamer@footbg\the\beamer@footboxes\endcsname{#1} \advance\beamer@footboxes by 1\relax \beamer@footboxsizes=\paperwidth \divide\beamer@footboxsizes by\beamer@footboxes } \def\addfootbox#1#2{\addfootboxtemplate{\usebeamercolor[bg]{#1}}{\usebeamercolor[fg]{#1}#2}} \defbeamertemplate*{fotoline}{boxes theme} {% \beamer@currentbox=0\relax% \loop% \ifnum\beamer@currentbox<\beamer@footboxes% \hbox to\beamer@footboxsizes{% % Background {% \csname beamer@footbg\the\beamer@currentbox\endcsname% \vrule width\beamer@footboxsizes height\beamer@boxfootheight% \hskip-\beamer@footboxsizes% }% % Box {% \setbox\beamer@tempbox=\hbox to\beamer@footboxsizes{% \csname beamer@footbox\the\beamer@currentbox\endcsname\hfil}% \dp\beamer@tempbox=0pt% \setbox\beamer@tempbox=\hbox{\vbox{\box\beamer@tempbox\vskip3pt}}% \ht\beamer@tempbox=\beamer@boxfootheight% \dp\beamer@tempbox=0pt% \box\beamer@tempbox% }% }% \advance\beamer@currentbox by 1% \repeat% }% \mode semantik-0.9.5/src/templates/beamer/beamermindist/themes/theme/beamerthemedefault.sty000664 000000 000000 00000000673 12732552614 031153 0ustar00rootroot000000 000000 \ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/theme/beamerthemedefault.sty,v 1.6 2004/10/07 20:53:10 tantau Exp $ % Copyright 2003 by Till Tantau % % This program can be redistributed and/or modified under the terms % of the GNU Public License, version 2. \mode \usefonttheme{default} \usecolortheme{default} \useinnertheme{default} \useoutertheme{default} \mode semantik-0.9.5/src/templates/beamer/beamermindist/xcolor.sty000664 000000 000000 00000116344 12732552614 024252 0ustar00rootroot000000 000000 %% %% This is file `xcolor.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% xcolor.dtx (with options: `package') %% %% IMPORTANT NOTICE: %% %% For the copyright see the source file. %% %% Any modified versions of this file must be renamed %% with new filenames distinct from xcolor.sty. %% %% For distribution of the original source see the terms %% for copying and modification in the file xcolor.dtx. %% %% This generated file may be distributed as long as the %% original source files, as listed above, are part of the %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% %% --------------------------------------------------------- %% Copyright (C) 2003-2004 by Dr. Uwe Kern %% --------------------------------------------------------- %% %% Please send error reports and suggestions for %% improvements to the above email address. %% %% This package contains code copied from %% %% color.dtx [1999/02/16 v1.0i Standard LaTeX Color (DPC)] %% Copyright (C) 1994--1999 David Carlisle %% %% which is part of the Standard LaTeX `Graphics Bundle'. %% \def\XCfilesource{xcolor.dtx}% \def\XCfileversion{v2.00}% \def\XCfiledate{2004/07/04}% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{xcolor}[\XCfiledate\space\XCfileversion\space LaTeX color extensions (UK)] \edef\XC@catcodes {\catcode`\noexpand\!\the\catcode`\!\relax \catcode`\noexpand\:\the\catcode`\:\relax \catcode`\noexpand\-\the\catcode`\-\relax \catcode`\noexpand\+\the\catcode`\+\relax \catcode`\noexpand\;\the\catcode`\;\relax \catcode`\noexpand\"\the\catcode`\"\relax \catcode`\noexpand\^^A\the\catcode`\^^A\relax} \catcode`\!=12 \catcode`\:=12 \catcode`\-=12 \catcode`\+=12 \catcode`\;=12 \catcode`\"=12 \catcode`\^^A=\catcode`\% \newif\ifcolors@ \colors@true \newif\ifcolorerrors@ \newif\ifglobalcolors \globalcolorsfalse \newif\ifconvertcolorsD \newif\ifconvertcolorsU \newif\ifblendcolors \newif\ifmaskcolors \newif\ifXC@@tst \def\c@lor@error#1% {\ifcolorerrors@\PackageError{xcolor}{Undefined color #1}\@ehc \else\PackageWarning{xcolor}{Undefined color #1}\fi} \def\XC@append#1#2% {\ifx#1\@undefined\def#1{#2}\else\ifx#1\relax\def#1{#2}\else \toks@\expandafter{#1#2}\edef#1{\the\toks@}\fi\fi} \def\selectcolormodel#1% {\@ifundefined{XC@mod@#1}% {\c@lor@error{model `#1'}}% {\expandafter\ifx\csname XC@mod@#1\endcsname\XC@mod@natural \def\XC@tgt@mod##1{##1}\convertcolorsDfalse\convertcolorsUfalse \else \edef\XC@tgt@mod##1{#1}\convertcolorsDtrue\convertcolorsUtrue \fi}} \def\XC@mod@named{named} \@tfor\@@tmp:={natural}{rgb}{cmy}{cmyk}{hsb}{gray}{RGB}{HTML}{HSB}{Gray}\do {\expandafter\let\csname XC@mod@\@@tmp\endcsname\@@tmp \edef\@@tmp {\noexpand\DeclareOption{\@@tmp}{\noexpand\selectcolormodel{\@@tmp}}}% \@@tmp} \DeclareOption{monochrome} {\ExecuteOptions{hideerrors}% \AtEndOfPackage {\colors@false \def\set@color{\c@lor@special\m@ne {color push \current@color}\aftergroup\reset@color}% \def\reset@color{\c@lor@special\m@ne{color pop}}% \def\set@page@color{\c@lor@special\m@ne{background \current@color}}}} \let\XC@colornames\relax \DeclareOption{dvipsnames}{\XC@append\XC@colornames{\input{dvipsnam.def}}} \DeclareOption{svgnames}{\XC@append\XC@colornames{\input{svgnam.def}}} \DeclareOption{pst}{\def\XC@pst{\RequirePackage{pstcol}}} \DeclareOption{table}{\def\XC@table{\RequirePackage{colortbl}}} \DeclareOption{hyperref} {\@tfor\@@tmp:={cite}{file}{link}{menu}{page}{run}{url}\do {\expandafter\edef\csname KV@Hyp@x\@@tmp bordercolor\endcsname #1% {\noexpand\XC@bordercolor{\@@tmp}{#1}}}% \AtEndOfPackage {\GetGinDriver\def\KV@Hyp@xpdfborder#1{\edef\@pdfborder{#1}}% \@tfor\@@tmp:={dvips}\do {\ifx\GinDriver\@@tmp \def\KV@Hyp@xpdfborder#1% {\edef\@pdfborder{#1}\expandafter\XC@pdfborder\@pdfborder\relax}% \@break@tfor\fi}}} \providecommand\Gin@driver{} \@tfor\@@tmp:={dvipdf}{dvipdfm}{dvips}{dvipsone}{dviwin}{emtex}% {pctex32}{pctexhp}{pctexps}{pctexwin}{pdftex}{tcidvi}% {textures}{truetex}{vtex}\do {\edef\@@tmp{\noexpand\DeclareOption{\@@tmp}% {\noexpand\def\noexpand\Gin@driver{\@@tmp.def}}}% \@@tmp} \DeclareOption{dviwindo}{\ExecuteOptions{dvipsone}} \DeclareOption{oztex}{\ExecuteOptions{dvips}} \DeclareOption{xdvi}{\ExecuteOptions{dvips,monochrome}} \DeclareOption{showerrors}{\colorerrors@true} \DeclareOption{hideerrors}{\colorerrors@false} \DeclareOption{debugshow}{\catcode`\^^A=9 \let\GDebug\typeout} \DeclareOption*% {\PackageInfo{xcolor}{Package option `\CurrentOption' ignored}} \ExecuteOptions{natural,showerrors} \InputIfFileExists{color.cfg}{}{} \ProcessOptions\relax \if!\Gin@driver! \PackageError{xcolor} {No driver specified} {You should make a default driver option in a file \MessageBreak color.cfg\MessageBreak eg: \protect\ExecuteOptions{dvips}} \else \PackageInfo{xcolor}{Driver file: \Gin@driver} \@ifundefined{ver@\Gin@driver}{\input{\Gin@driver}}{} \fi \@nameuse{XC@pst} \@namedef{ver@color.sty}{1999/02/16} \@nameuse{XC@table} \long\def\@secondoffive#1#2#3#4#5{#2} \def\@namelet#1#2% {\expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname} \def\@namexdef#1{\expandafter\xdef\csname #1\endcsname} \def\aftergroupdef#1#2% {\edef\@@tmp{\noexpand\def\noexpand#1{#2}}% \expandafter\endgroup\@@tmp} \begingroup \catcode`\!=13 \catcode`\:=13 \catcode`\-=13 \catcode`\+=13 \catcode`\;=13 \catcode`\"=13 \gdef\XC@edef#1#2% {\begingroup \ifnum\catcode`\!=13 \edef!{\string!}\fi \ifnum\catcode`\:=13 \edef:{\string:}\fi \ifnum\catcode`\-=13 \edef-{\string-}\fi \ifnum\catcode`\+=13 \edef+{\string+}\fi \ifnum\catcode`\;=13 \edef;{\string;}\fi \ifnum\catcode`\"=13 \edef"{\string"}\fi \edef\@@tmp{#2}\@onelevel@sanitize\@@tmp \aftergroupdef#1\@@tmp} \endgroup \def\@ifxempty#1{\@@ifxempty#1\@@ifxempty\XC@@} \def\@@ifxempty#1#2\XC@@ {\ifx#1\@@ifxempty \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi} \def\xglobal{\xglobal@stop\begingroup\futurelet\@@tok\xglobal@test} \def\xglobal@test {\expandafter\@tfor\expandafter\@@tmp \expandafter:\expandafter=\xglobal@list\do {\expandafter\ifx\@@tmp\@@tok \aftergroup\let\aftergroup\xglobal@\@break@tfor\fi}% \endgroup\global} \def\xglobal@stop{\let\xglobal@\@empty} \xglobal@stop \def\xglobal@list {\definecolor\providecolor\colorlet\definecolorset\providecolorset \blendcolors\maskcolors} \def\xglobalize@#1{\ifx\xglobal@\global\global\let#1#1\fi} \def\GetGinDriver{\expandafter\GetGinDriver@\Gin@driver.:} \def\GetGinDriver@#1.#2:% {\def\GinDriver{#1}\@tempswatrue \@tfor\@@tmp:={dvips}{pdftex}{dvipdf}{dvipdfm}{dvipsone}{vtex}{textures}% \do{\ifx\GinDriver\@@tmp\@tempswafalse\@break@tfor\fi}% \if@tempswa\def\GinDriver{hypertex}\fi} \def\@hex@Hex#1{\ifx#1\relax\else\expandafter\@hex@@Hex\expandafter#1\fi} \def\@hex@@Hex#1% {\if#1aA\else \if#1bB\else \if#1cC\else \if#1dD\else \if#1eE\else \if#1fF\else #1\fi\fi\fi\fi\fi\fi \@hex@Hex} \def\rdivide#1#2% {\begingroup\toks@{#1}\edef\@@tmp{\noexpand\@tempdima\the#1}% \@defaultunits\@tempdimb=#2pt\relax\@nnil \@@tmp\relax \ifdim\@tempdima<\z@ \@tempdima-\@tempdima\def\@sign{-}\else \def\@sign{}\fi \ifdim\@tempdimb<\z@ \@tempdimb-\@tempdimb\edef\@sign{\@sign-}\fi \ifdim\@tempdima<.1\maxdimen \ifdim\@tempdimb<.01\maxdimen \lshift\@tempdima \lshift\@tempdimb \fi\fi \@tempcnta=\@tempdima \@tempcntb=\@tempdimb \count@=\@tempcnta \divide\count@\@tempcntb \edef\@@tmp{\number\count@.}% \@tempswatrue \@rdivide \@rdivide \@rdivide \@rdivide \@rdivide \@tempswafalse \@rdivide \dimen@\@@tmp\p@ \ifnum\count@>4\advance\dimen@.00001\p@\fi \dimen@\@sign\dimen@ \edef\@@tmp{\the\toks@\the\dimen@}% \expandafter\endgroup\@@tmp} \def\@rdivide {\multiply\count@\@tempcntb \advance\@tempcnta-\count@ \multiply\@tempcnta10 \count@=\@tempcnta \divide\count@\@tempcntb \if@tempswa\edef\@@tmp{\@@tmp\number\count@}\fi} \def\rmultiply#1#2% {\begingroup \edef\@@mul{#2}\@tempdima\the#1\relax \afterassignment\@tempdimb\@tempcntb=\@@mul\p@ \ifdim\@tempdima<\z@ \@tempdima-\@tempdima\def\@sign{-}\else \def\@sign{}\fi \ifnum\@tempcntb<\z@ \@tempcntb-\@tempcntb\edef\@sign{\@sign-}\fi \lshift\@tempdima \dimen@\z@ \expandafter\@rmultiply\@@mul.0.\@nil \advance\dimen@\@tempcntb\@tempdima \rshift\dimen@ \dimen@\@sign\dimen@ \edef\@@tmp{#1\the\dimen@}% \expandafter\endgroup\@@tmp} \def\@rmultiply#1.#2.#3\@nil {\def\@@tmp{}% \@tfor\@@mul:=#2\do {\edef\@@tmp {\advance\dimen@\@@mul\@tempdima \divide\dimen@10 \@@tmp}}% \@@tmp} \def\lshift#1{#1\expandafter\lshift@\the#1} \def\llshift#1{\lshift#1\lshift#1} \def\lshiftnum#1{\expandafter\lshiftnum@#1.00.:} \def\lshiftnum@#1.#2#3.#4:{#1#2\ifnum0#3>\z@.#3\fi} \def\llshiftnum#1{\expandafter\llshiftnum@#1\@empty.00.:} \def\llshiftnum@#1.#2#3#4.#5:% {#1#2\ifnum0#3>\z@#3\else0\fi\ifnum0#4>\z@.#4\fi} \def\lshiftset#1#2{\edef\@@XC{\noexpand\lshiftnum{#2}}#1\@@XC\p@} \def\llshiftset#1#2{\edef\@@XC{\noexpand\llshiftnum{#2}}#1\@@XC\p@} \def\rshift#1{#1\expandafter\rshift@\the#1} \def\rrshift#1{\rshift#1\rshift#1} \begingroup \catcode`P=12 \catcode`T=12 \lowercase {\def\@@tmp{\def\lshift@##1.##2##3PT{##1##2\ifnum0##3>\z@.##3\fi\p@} \def\rshift@##1.##2PT{\rshift@@##1\relax##2\p@}}} \expandafter\endgroup\@@tmp \def\rshift@@#1#2% {\ifx#2\relax.#1\else#1\expandafter\rshift@@\expandafter#2\fi} \def\XC@inflate#1#2#3#4% {\edef#4{#2,\ifx#1\XC@mod@cmyk #3\else \ifx#1\XC@mod@gray ,,,#3,,,\else ,#3,\fi\fi}} \def\XC@vec#1,#2,#3,#4,#5,#6,#7,#8,#9% {\def\@@tmp{}% \XC@vec@{#1}{#5}% \@ifxempty{#2}{}% {\XC@vec@{#2}{#6}\XC@vec@{#3}{#7}\@ifxempty{#4}{}{\XC@vec@{#4}{#8}}}% \aftergroupdef#9\@@tmp} \def\XC@add{\begingroup \let\XC@vec@\XC@add@ \XC@vec} \def\XC@add@#1#2% {\llshiftset\dimen@{#1}\llshiftset\@tempdima{#2}% \advance\dimen@\@tempdima \rrshift\dimen@ \edef\@@tmp{\ifx\@@tmp\@empty\else\@@tmp,\fi\strip@pt\dimen@}} \def\XC@sub{\begingroup \let\XC@vec@\XC@sub@ \XC@vec} \def\XC@sub@#1#2{\XC@add@{#1}{-#2}} \def\XC@mul{\begingroup \let\XC@vec@\XC@mul@ \XC@vec} \def\XC@mul@#1#2% {\llshiftset\dimen@{#1}\rmultiply\dimen@{#2}\rrshift\dimen@ \edef\@@tmp{\ifx\@@tmp\@empty\else\@@tmp,\fi\strip@pt\dimen@}} \def\XC@mix% {\begingroup \@tempdima\dimen@ \@tempdimb100\p@ \advance\@tempdimb-\@tempdima \let\XC@vec@\XC@mix@ \XC@vec} \def\XC@mix@#1#2% {\dimen@#1\@tempdima \advance\dimen@#2\@tempdimb \rrshift\dimen@ \edef\@@tmp{\ifx\@@tmp\@empty\else\@@tmp,\fi\strip@pt\dimen@}} \def\XC@calc@#1,#2,#3,#4,#5:#6% {\toks@\expandafter{\csname XC@calc#6\endcsname}% \the\toks@{#1}\@@tmp \@ifxempty{#2}{}% {\the\toks@{#2}\@tempa \the\toks@{#3}\@tempb \@ifxempty{#4}% {\edef\@@tmp{\@@tmp,\@tempa,\@tempb}}% {\the\toks@{#4}\@tempc \edef\@@tmp{\@@tmp,\@tempa,\@tempb,\@tempc}}}} \def\XC@calcC#1#2% {\lshiftset\dimen@{-#1}\advance\dimen@10\p@ \rshift\dimen@ \edef#2{\strip@pt\dimen@}} \def\XC@calcD#1#2% {\dimen@#1\p@ \rdivide\dimen@\@@scl \edef#2{\strip@pt\dimen@}} \def\XC@calcH#1#2% {\count@#1 \divide\count@\sixt@@n \edef\XC@@tmp{\hexnumber@\count@}% \multiply\count@-\sixt@@n \advance\count@#1 \edef#2{\XC@@tmp\hexnumber@\count@}} \def\XC@calcM#1#2% {\dimen@#1\p@ \dimen@\@@scl\dimen@ \advance\dimen@.5\p@ \afterassignment\dimen@\count@=\the\dimen@ \edef#2{\number\count@}} \def\XC@calcN#1#2% {\edef#2{#1}% \edef#2{\ifdim#2\p@<\z@0\else \ifdim#2\p@<\p@ 0\expandafter\XC@@calcN#2.0.:\else 1\fi\fi}} \def\XC@@calcN#1.#2.#3:% {\ifnum0#2=0 \else.\XC@@@calcN#2:\fi} \def\XC@@@calcN#1#2:% {\ifnum0#1#2=0 \else #1\ifnum0#2=0 \else \XC@@@calcN#2:\fi\fi} \def\XC@calcS#1#2% {\lshiftset\dimen@{#1}\dimen@\lshiftnum\@@scl\dimen@ \rrshift\dimen@ \edef#2{\strip@pt\dimen@}} \def\XC@calcT#1#2% {\lshiftset\dimen@{#1}\advance\dimen@\lshiftnum\@@arg\p@ \rshift\dimen@ \edef#2% {\ifdim\dimen@>\p@1\else\ifdim\dimen@<\z@0\else\strip@pt\dimen@\fi\fi}} \def\XC@calcU#1#2% {\dimen@#1\p@ \ifdim\dimen@=\p@\else \afterassignment\dimen@\count@=\the\dimen@ \ifnum\count@<\z@ \lshift\dimen@ \dimen@-\dimen@ \advance\dimen@10\p@ \rshift\dimen@ \fi \fi \edef#2{\strip@pt\dimen@}} \ifx\rangeRGB\@undefined\def\rangeRGB{255}\fi \ifx\rangeHSB\@undefined\def\rangeHSB{240}\fi \ifx\rangeGray\@undefined\def\rangeGray{15}\fi \ifx\adjustUCRBG\@undefined\def\adjustUCRBG{1,1,1,1}\fi \ifx\colorseriescycle\@undefined\def\colorseriescycle{16}\fi \def\XC@clr@rgb@white{,,} \def\XC@clr@cmy@white{0,0,0} \def\XC@clr@cmyk@white{0,0,0,0} \def\XC@clr@hsb@white{\@@hue,0,} \def\XC@clr@hsb@gray{\@@hue,0,.5} \def\XC@clr@hsb@black{\@@hue,0,0} \def\XC@clr@gray@white{} \@tfor\@@tmp:={grad}{last}{step}\do {\@namelet{XC@met@\@@tmp}{@@tmp}} \def\definecolor{\@testopt{\XC@definecolor}{}} \def\XC@definecolor[#1]#2#3#4% {\@ifundefined{XC@mod@#3}% {\c@lor@error{model `#3'}}% {\begingroup \edef\@@cls{#1}\XC@edef\@@nam{#2}\edef\@@mod{#3}\XC@edef\@@clr{#4}% \XC@logdef\@@nam \ifx\@@mod\XC@mod@named \XC@@colorlet\@@nam\@@clr \else \ifconvertcolorsD \edef\@@mod{\XC@tgt@mod{#3}}\convertcolorspec{#3}\@@clr\@@mod\@@clr \fi \XC@coremodel\@@mod\@@clr \csname color@\@@mod\expandafter\endcsname \expandafter\@@drv\expandafter{\@@clr}% \ifx\@@cls\@empty \@temptokena{}% \else \@nameuse{define@color@\@@cls}{\@@nam}\@@drv \@temptokena\expandafter{\@@col}% \csname color@\@@cls\expandafter\endcsname \expandafter\@@drv\expandafter{\@@nam}% \fi \toks@\expandafter{\@@drv}% \edef\@@tmp {\ifglobalcolors\global\else\xglobal@\fi \noexpand\@namedef{\string\color@\@@nam}% {\noexpand\xcolor@{\the\@temptokena}{\the\toks@}{\@@mod}{\@@clr}}}% \fi \expandafter\endgroup\@@tmp\xglobal@stop}} \let\xdefinecolor\definecolor \def\providecolor{\@testopt{\XC@providecolor}{}} \def\XC@providecolor[#1]#2#3#4% {\XC@edef\XC@@tmp{#2}% \@ifundefined{\string\color@\XC@@tmp}{\definecolor[#1]{#2}{#3}{#4}}% {\ifnum\XC@tracing>0 \PackageInfo{xcolor}{Ignoring color definition `\XC@@tmp'}\fi}} \def\xcolor@#1#2#3#4{#2} \def\colorlet#1{\@testopt{\XC@colorlet{#1}}{}} \def\XC@colorlet#1[#2]#3% {\begingroup \XC@edef\@@nam{#1}\edef\@@mod{#2}\XC@edef\@@tmp{#3}\XC@@tsttrue \@ifundefined{\string\color@\@@tmp}% {}{\ifx\@@mod\@empty\XC@@tstfalse\fi}% \ifXC@@tst \extractcolorspec\@@tmp\@@tmp \ifx\@@mod\@empty\else \expandafter\convertcolorspec\@@tmp\@@mod\@@tmp \edef\@@tmp{{\@@mod}{\@@tmp}}\fi \edef\@@tmp{\noexpand\XC@definecolor[]{\@@nam}\@@tmp}% \else \XC@logdef\@@nam\XC@@colorlet\@@nam\@@tmp \fi \expandafter\endgroup\@@tmp\xglobal@stop} \def\XC@@colorlet#1#2% {\@ifundefined{\string\color@#2}% {\c@lor@error{`#2'}\let\@@tmp\@empty}% {\edef\@@tmp {\ifglobalcolors\global\else\xglobal@\fi \noexpand\@namelet{\string\color@#1}{\string\color@#2}}}} \def\DefineNamedColor#1{\XC@definecolor[#1]} \def\definecolorset {\let\XC@defclr\definecolor\@testopt{\XC@definecolorset}{}} \def\XC@definecolorset[#1]#2#3#4#5% {\XC@edef\XC@@tmp{#5}\let\XC@@glb\xglobal@ \def\XC@@definecolorset##1,##2;% {\@ifxempty{##1}{}% {\let\xglobal@\XC@@glb \XC@defclr[#1]{#3##1#4}{#2}{##2}\XC@@definecolorset}}% \expandafter\XC@@definecolorset\XC@@tmp;,;} \def\providecolorset {\let\XC@defclr\providecolor\@testopt{\XC@definecolorset}{}} \def\definecolorseries#1#2#3% {\@testopt{\XC@definecolorseries{#1}{#2}{#3}}{}} \def\XC@definecolorseries#1#2#3[#4]#5% {\@testopt{\XC@@definecolorseries{#1}{#2}{#3}[#4]{#5}}{}} \def\XC@@definecolorseries#1#2#3[#4]#5[#6]#7% {\begingroup \edef\@@mod{#2}% \@ifxempty{#4}{\extractcolorspec{#5}\@@clr}{\edef\@@clr{{#4}{#5}}}% \expandafter\convertcolorspec\@@clr\@@mod\@@clr \@namexdef{\string\colorB@#1}{{\@@mod}{\@@clr}}% \edef\@@met{#3}% \ifx\@@met\XC@met@last \@ifxempty{#6}{\extractcolorspec{#7}\@@tmp}{\edef\@@tmp{{#6}{#7}}}% \expandafter\convertcolorspec\@@tmp\@@mod\@@tmp \XC@inflate\@@mod\@@tmp\@@clr\@@tmp \expandafter\XC@sub\@@tmp,\@@tmp \else \edef\@@tmp{#7}% \fi \@namexdef{\string\colorD@#1}{{\@@met}{\@@tmp}}% \endgroup} \def\resetcolorseries{\@testopt{\XC@resetcolorseries}{}} \def\XC@resetcolorseries[#1]#2% {\begingroup \@namexdef {\string\color@#2}{\noexpand\xcolor@{}{}\@nameuse{\string\colorB@#2}}% \@namelet{@@tmp}{\string\colorD@#2}% \edef\@@met{\expandafter\@firstoftwo\@@tmp}% \edef\@@tmp{\expandafter\@secondoftwo\@@tmp}% \ifx\@@met\XC@met@step\else \edef\@@scl{\@ifxempty{#1}\colorseriescycle{#1}}% \expandafter\XC@calc@\@@tmp,,,,:D% \fi \@namexdef{\string\colorS@#2}{\@@tmp}% \endgroup} \def\XC@step#1% {\let\xcolor@\@gobbletwo\edef\@@tmp{\@nameuse{\string\color@#1}}% \expandafter\XC@@step\@@tmp{#1}% \@namexdef{\string\color@#1}{\noexpand\xcolor@{}{}{\@@mod}{\@@tmp}}} \def\XC@@step#1#2#3% {\def\@@mod{#1}\def\@@tmp{#2}\edef\@@vec{\@nameuse{\string\colorS@#3}}% \@whilenum\@tempcnta>\z@\do {\XC@inflate\@@mod\@@tmp\@@vec\@@tmp \expandafter\XC@add\@@tmp,\@@tmp \expandafter\XC@calc@\@@tmp,,,,:U% \advance\@tempcnta\m@ne}} \def\XC@stepabs#1% {\edef\@@tmp{\@nameuse{\string\colorB@#1}}% \expandafter\XC@@step\@@tmp{#1}% \edef\@@tmp {\noexpand\def\noexpand\@@mod{\@@mod}% \noexpand\def\noexpand\@@clr{\@@tmp}}} \def\blendcolors{\@ifstar{\XC@blendcolors\colorblend}{\XC@blendcolors{}}} \def\XC@blendcolors#1#2% {\edef\colorblend{#1}\XC@edef\XC@@tmp{#2}% \ifx\XC@@tmp\@empty \xglobal@\blendcolorsfalse \else \xglobal@\blendcolorstrue \expandafter\XC@@blendcolors\XC@@tmp!!\@nil \fi \xglobalize@\colorblend \xglobal@stop} \def\XC@@blendcolors!#1!#2!#3\@nil {\@ifxempty{#1}{}% {\@ifxempty{#2}% {\edef\colorblend{\colorblend!#1!white}}% {\edef\colorblend{\colorblend!#1!#2}\XC@@blendcolors!#3!\@nil}}} \blendcolors{} \def\maskcolors{\@testopt{\XC@maskcolors}{}} \def\XC@maskcolors[#1]#2% {\XC@edef\colormask{#2}% \ifx\colormask\@empty \xglobal@\maskcolorsfalse \def\XC@mmod{}\def\XC@mclr{}% \else \xglobal@\maskcolorstrue \extractcolorspec\colormask\XC@mclr \edef\XC@mmod{\expandafter\@firstoftwo\XC@mclr}% \edef\XC@mclr{\expandafter\@secondoftwo\XC@mclr}% \@ifxempty{#1}{}% {\convertcolorspec\XC@mmod\XC@mclr{#1}\XC@mclr \edef\XC@mmod{#1}}% \XC@coremodel\XC@mmod\XC@mclr \fi \xglobalize@\colormask \xglobalize@\XC@mmod \xglobalize@\XC@mclr \xglobal@stop} \maskcolors{} \DeclareRobustCommand\color {\@ifnextchar[\@undeclaredcolor\@declaredcolor} \def\@undeclaredcolor[#1]#2% {\begingroup \edef\@@mod{#1}\XC@edef\@@clr{#2}% \ifblendcolors \ifx\colorblend\@empty\else \edef\@@mix{\expandafter\@gobble\colorblend}\@tempswafalse \XC@coremodel\@@mod\@@clr\@xcolor@{}{}\@@mod\@@clr \fi \fi \ifconvertcolorsU \edef\@@tmp{\XC@tgt@mod{\@@mod}}% \convertcolorspec\@@mod\@@clr\@@tmp\@@clr \let\@@mod\@@tmp \fi \ifmaskcolors \convertcolorspec\@@mod\@@clr\XC@mmod\@@clr \let\@@mod\XC@mmod \XC@inflate\@@mod\XC@mclr\@@clr\@@tmp \expandafter\XC@mul\@@tmp,\@@clr \fi \edef\@@tmp{\noexpand\XC@undeclaredcolor{\@@mod}{\@@clr}}% \expandafter\endgroup\@@tmp} \def\XC@undeclaredcolor#1#2% {\@ifundefined{color@#1}% {\c@lor@error{model `#1'}}% {\@nameuse{color@#1}\current@color{#2}% \edef\XC@current@color{\noexpand\xcolor@{}{\current@color}{#1}{#2}}% \XC@display}} \def\@declaredcolor#1% {\XC@edef\XC@@tmp{#1}\XC@@tstfalse \ifcase\XC@type{\XC@@tmp}\relax \XC@@tsttrue\or \relax\else \ifblendcolors\XC@@tsttrue\fi \ifmaskcolors\XC@@tsttrue\fi \ifconvertcolorsU\XC@@tsttrue\fi \fi \ifXC@@tst \expandafter\XC@declaredcolor \else \expandafter\XC@@declaredcolor \fi} \def\XC@declaredcolor {\XC@split\XC@@tmp \edef\@@tmp{\noexpand\@undeclaredcolor[\@@mod]{\@@clr}}% \expandafter\endgroup\@@tmp} \def\XC@@declaredcolor {\@namelet{XC@current@color}{\string\color@\XC@@tmp}% \edef\current@color{\XC@current@color}% \XC@display} \def\@xcolor@#1#2#3#4% {\edef\@@mod{#3}\edef\@@clr{#4}% \ifx\@@mix\@empty\else\expandafter\@xcolor@@\@@mix!!!!\@nil\fi \if@tempswa \@namelet{@@tmp}{XC@cnv@\@@mod @compl}% \ifx\@@tmp\relax \expandafter\XC@calc@\@@clr,,,,:C\else \expandafter\@@tmp\@@clr,\fi \let\@@clr\@@tmp \fi} \def\@xcolor@@#1!#2!#3!#4!#5\@nil {\dimen@\@ifxempty{#1}{100}{#1}\p@ \edef\@@mix{\@ifxempty{#2}{white}{#2}}% \ifdim\dimen@=100\p@ \expandafter\XC@postfix\@@mix]\relax \else\ifdim\dimen@=\z@ \extractcolorspec\@@mix\@@tmp \edef\@@mod{\expandafter\@firstoftwo\@@tmp}% \edef\@@clr{\expandafter\@secondoftwo\@@tmp}% \else \@namelet{@@tmp}{XC@clr@\@@mod @\@@mix}% \ifx\@@tmp\relax \extractcolorspec\@@mix\@@tmp \ifx\@@mod\XC@mod@gray \edef\@@mod{\expandafter\@firstoftwo\@@tmp}% \edef\@@tmp{\expandafter\@secondoftwo\@@tmp}% \convertcolorspec\XC@mod@gray\@@clr\@@mod\@@clr \else \expandafter\convertcolorspec\@@tmp\@@mod\@@tmp \fi \else \ifx\@@mod\XC@mod@hsb\expandafter\XC@extract@hue\@@clr:\@@hue\fi \fi \XC@inflate\@@mod\@@clr\@@tmp\@@tmp \expandafter\XC@mix\@@tmp,\@@clr \fi\fi \@ifxempty{#3}% {\@ifxempty{#4}{}{\@xcolor@@!#4!#5\@nil}}% {\@xcolor@@#3!#4!#5\@nil}} \def\XC@split#1% {\begingroup\XC@edef\@@tmp{#1}\expandafter\XC@split@i\@@tmp:\@nil} \def\XC@split@i#1:#2\@nil {\@ifxempty{#2}{\XC@split@v}{\XC@split@ii#1,,:#2}} \def\XC@split@ii#1,#2,#3:#4:% {\edef\XC@@mod{\@nameuse{XC@mod@#1}}\let\@tempa\@empty \@ifxempty{#2}{\XC@@tsttrue\@tempdima\z@}{\XC@@tstfalse\@tempdima#2\p@}% \XC@split@iii#4;,;} \def\XC@split@iii#1,#2;% {\@ifxempty{#1}% {\let\XC@@clr\@empty \@tempa \expandafter\XC@calc@\XC@@clr,,,,:U% \let\@@mod\XC@@mod \let\@@clr\@@tmp} {\XC@append\@tempa{\XC@split@iv{#1}{#2}}% \ifXC@@tst\advance\@tempdima#2\p@\fi \XC@split@iii}} \def\XC@split@iv#1#2% {\def\@@tmp{#1}\XC@split@v \ifx\@@mod\XC@@mod\else \convertcolorspec\@@mod\@@clr\XC@@mod\@@clr \fi \dimen@#2\p@ \rdivide\dimen@\@tempdima \edef\@@scl{\strip@pt\dimen@}% \expandafter\XC@calc@\@@clr,,,,:S% \ifx\XC@@clr\@empty\let\XC@@clr\@@tmp\else \XC@inflate\XC@@mod\XC@@clr\@@tmp\@@tmp \expandafter\XC@add\@@tmp,\XC@@clr \fi} \def\XC@split@v{\count@\z@ \expandafter\XC@split@vi\@@tmp!\@nil} \def\XC@split@vi#1% {\ifx#1-\advance\count@\@ne\expandafter\XC@split@vi \else\expandafter\XC@split@vii\expandafter#1\fi} \def\XC@split@vii#1!#2\@nil {\edef\@@nam{#1}\edef\@@mix{#2}% \ifodd\count@\@tempswatrue\else\@tempswafalse\fi \@ifundefined{\string\color@\@@nam}% {\c@lor@error{`\@@nam'}\def\@@nam{black}}{}% \let\xcolor@\@xcolor@\@nameuse{\string\color@\@@nam}} \def\XC@postfix#1#2]#3\relax {\begingroup \if#1[\@tempcnta#2\relax\XC@stepabs\@@nam \else\@tempcnta\z@ \@tfor\@@tok:=#1#2\do {\if\@@tok+\advance\@tempcnta\@ne \else\if\@@tok-\advance\@tempcnta\m@ne \else\@tempcnta\z@\expandafter\@break@tfor\fi\fi}% \ifnum\@tempcnta=\z@\relax\else\XC@step\@@nam\fi \let\@@tmp\@empty \fi\expandafter\endgroup\@@tmp} \def\XC@display {\XC@bcolor\@namelet{\string\color@.}{XC@current@color}% \ifnum\XC@type{.}=1 \PackageWarning{xcolor}{Incompatible color definition}% \else \ifnum\XC@tracing>2 \begingroup \let\xcolor@\@empty \def\@nil{\string\@nil}% \PackageInfo{xcolor}{Setting color `\XC@current@color'}% \endgroup \fi \fi \XC@mcolor\set@color\XC@ecolor\ignorespaces} \let\XC@bcolor\relax \let\XC@mcolor\relax \let\XC@ecolor\relax \def\textcolor#1#{\@textcolor{#1}} \def\@textcolor#1#2#3{\protect\leavevmode{\color#1{#2}#3}} \def\color@block#1#2#3{% {\set@color\rlap{\ifcolors@\vrule\@width#1\@height#2\@depth#3\fi}}} \def\colorbox#1#{\color@box{#1}} \def\color@box#1#2{\color@b@x\relax{\color#1{#2}}} \def\fcolorbox#1#{\color@fbox{#1}} \def\color@fbox#1#2#3{% \color@b@x{\fboxsep\z@\color#1{#2}\fbox}{\color#1{#3}}} \long\def\color@b@x#1#2#3{% \leavevmode \setbox\z@\hbox{\kern\fboxsep{\set@color#3}\kern\fboxsep}% \dimen@\ht\z@\advance\dimen@\fboxsep\ht\z@\dimen@ \dimen@\dp\z@\advance\dimen@\fboxsep\dp\z@\dimen@ {#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}% \box\z@}}} \def\pagecolor {\begingroup \let\ignorespaces\endgroup \let\set@color\set@page@color \color} \def\XC@bordercolor#1#2% {\extractcolorspec{#2}\XC@@tmp \expandafter\convertcolorspec\XC@@tmp\XC@mod@rgb\XC@@tmp \expandafter\edef\csname @#1bordercolor\endcsname {\expandafter\XC@@bordercolor\XC@@tmp,}} \def\XC@@bordercolor#1,#2,#3,{#1 #2 #3} \def\XC@pdfborder#1 #2 #3\relax {\def\@@scl{80}\XC@calc@#1,#2,#3,,:S% \edef\@pdfborder{\expandafter\XC@@bordercolor\@@tmp,}} \AtBeginDocument{\@ifundefined{ver@colortbl.sty}{}{% \def\rowcolors{\@ifstar{\@rowcmdfalse\rowc@lors}{\@rowcmdtrue\rowc@lors}}% \def\rowc@lors{\@testopt{\rowc@l@rs}{}}% \def\rowc@l@rs[#1]#2#3#4% {\global\rownum=\z@ \global\@rowcolorstrue \@ifxempty{#3}% {\def\@oddrowcolor{\@norowcolor}}% {\def\@oddrowcolor{\gdef\CT@row@color{\CT@color{#3}}}}% \@ifxempty{#4}% {\def\@evenrowcolor{\@norowcolor}}% {\def\@evenrowcolor{\gdef\CT@row@color{\CT@color{#4}}}}% \if@rowcmd \def\@rowcolors {#1\if@rowcolors \noalign{\relax\ifnum\rownum<#2\@norowcolor\else \ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi\fi}% \fi}% \else \def\@rowcolors {\if@rowcolors \ifnum\rownum<#2\noalign{\@norowcolor}\else #1\noalign{\ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi}\fi \fi}% \fi \CT@everycr{\noalign{\rownum@step}\@rowcolors\the\everycr}% \ignorespaces}% \def\showrowcolors{\noalign{\global\@rowcolorstrue}\@rowcolors}% \def\hiderowcolors{\noalign{\global\@rowcolorsfalse\@norowcolor}}% \def\@norowcolor{\global\let\CT@row@color\relax}% \newif\if@rowcolors \newif\if@rowcmd \ifx\rownum\@undefined\newcount\rownum\fi \def\rownum@step{\global\advance\rownum\@ne}% \def\CT@extract#1\columncolor#2#3\@nil{% \if!#2% \let\CT@column@color\@empty \else \if[#2% \CT@extractb{#1}#3\@nil \else \XC@edef\XC@@tmp{#2}% \edef\CT@column@color{\noexpand\CT@color{\XC@@tmp}}% \CT@extractd{#1}#3\@nil \fi \fi}% }} \def\extractcolorspec#1#2% {\XC@split{#1}\aftergroupdef#2{{\@@mod}{\@@clr}}} \def\XC@extract@hue#1,#2:#3{\edef#3{#1}} \def\XC@type#1% {\expandafter\expandafter\expandafter\XC@@type \csname\string\color@#1\endcsname\@empty\@empty\@empty\XC@@} \def\XC@@type#1#2#3#4\XC@@ {\ifx#1\relax 0\else \ifx#1\xcolor@ \ifx$#2$% \ifx$#3$4\else3\fi\@gobbletwo \else2\fi\@gobbletwo \else1\fi \fi} \def\tracingcolors{\begingroup\afterassignment\XC@tracingcolors\count@} \def\XC@tracingcolors{\aftergroupdef\XC@tracing{\the\count@}} \tracingcolors=0 \def\XC@logdef#1% {\ifnum\XC@tracing>1 \@ifundefined{\string\color@#1}% {\ifnum\XC@tracing>2 \PackageInfo{xcolor}{Defining color `#1'}% \fi}% {\PackageInfo{xcolor}{Redefining color `#1'}}% \fi} \def\color@setgroup{\begingroup\set@color} \let\color@begingroup\begingroup \def\color@endgroup{\endgraf\endgroup} \def\color@hbox{\hbox\bgroup\color@begingroup} \def\color@vbox{\vbox\bgroup\color@begingroup} \def\color@endbox{\color@endgroup\egroup} \def\convertcolorspec#1#2#3#4% {\begingroup \edef\sm{#1}\edef\tm{#3}\edef\@@tmp{#2}% \ifx\sm\XC@mod@named \extractcolorspec\@@tmp\@@tmp \edef\sm{\expandafter\@firstoftwo\@@tmp}% \edef\@@tmp{\expandafter\@secondoftwo\@@tmp}% \fi \ifx\sm\tm\else\csname XC@cnv@\sm\expandafter\endcsname\@@tmp,\fi \aftergroupdef#4\@@tmp} \def\XC@coremodel#1#2% {\ifx#1\XC@mod@RGB \convertcolorspec#1#2\XC@mod@rgb#2\let#1\XC@mod@rgb\else \ifx#1\XC@mod@HTML \convertcolorspec#1#2\XC@mod@rgb#2\let#1\XC@mod@rgb\else \ifx#1\XC@mod@HSB \convertcolorspec#1#2\XC@mod@hsb#2\let#1\XC@mod@hsb\else \ifx#1\XC@mod@Gray \convertcolorspec#1#2\XC@mod@gray#2\let#1\XC@mod@gray\else \ifx#1\XC@mod@named\else \expandafter\XC@calc@#2,,,,:N\let#2\@@tmp \fi\fi\fi\fi\fi} \def\XC@cnv@rgb#1,#2,#3,% {\ifx\tm\XC@mod@cmy \XC@calc@#1,#2,#3,,:C% \else\ifx\tm\XC@mod@cmyk \XC@calc@#1,#2,#3,,:C\expandafter\XC@cnv@cmy@cmyk\@@tmp,% \else\ifx\tm\XC@mod@hsb \XC@cnv@rgb@hsb#1,#2,#3,% \else\ifx\tm\XC@mod@gray \XC@cnv@rgb@gray#1,#2,#3,% \else\ifx\tm\XC@mod@RGB \edef\@@scl{\rangeRGB}\XC@calc@#1,#2,#3,,:M% \else\ifx\tm\XC@mod@HTML \edef\@@scl{\@cclv}\XC@calc@#1,#2,#3,,:M% \expandafter\XC@calc@\@@tmp,,:H% \expandafter\XC@cnv@rgb@HTML\@@tmp,% \else\ifx\tm\XC@mod@HSB \XC@cnv@rgb@hsb#1,#2,#3,% \edef\@@scl{\rangeHSB}\expandafter\XC@calc@\@@tmp,,:M% \else\ifx\tm\XC@mod@Gray \XC@cnv@rgb@gray#1,#2,#3,% \edef\@@scl{\rangeGray}\XC@calcM\@@tmp\@@tmp \else \XC@calc@#1,#2,#3,,:N% \fi\fi\fi\fi\fi\fi\fi\fi} \def\XC@cnv@rgb@hsb#1,#2,#3,% {\count@\z@ \ifdim#2\p@>#1\p@ \else\advance\count@4 \fi \ifdim#3\p@>#2\p@ \else\advance\count@2 \fi \ifdim#1\p@>#3\p@ \else\advance\count@1 \fi \ifcase\count@\or \XC@@cnv@rgb@hsb{#3}{#2}{#1}3{}\or \XC@@cnv@rgb@hsb{#2}{#1}{#3}1{}\or \XC@@cnv@rgb@hsb{#2}{#3}{#1}3-\or \XC@@cnv@rgb@hsb{#1}{#3}{#2}5{}\or \XC@@cnv@rgb@hsb{#3}{#1}{#2}5-\or \XC@@cnv@rgb@hsb{#1}{#2}{#3}1-\or \def\@tempa{0}\def\@tempb{0}\XC@calcN{#3}\@tempc \fi \edef\@@tmp{\@tempa,\@tempb,\@tempc}} \def\XC@@cnv@rgb@hsb#1#2#3#4#5% {\XC@calcN{#1}\@tempc \llshiftset\dimen@{#1}% \llshiftset\@tempdimb{-#3}\advance\@tempdimb\dimen@ \llshiftset\@tempdima{-#5#2}\advance\@tempdima#5\dimen@ \advance\@tempdima#4\@tempdimb \rdivide\@tempdima{6\@tempdimb}% \edef\@tempa{\ifdim\@tempdima>\p@1\else\strip@pt\@tempdima\fi}% \rdivide\@tempdimb\dimen@ \edef\@tempb{\strip@pt\@tempdimb}} \def\XC@cnv@rgb@gray#1,#2,#3,% {\llshiftset\dimen@{#1}\@tempdima30\dimen@ \llshiftset\dimen@{#2}\advance\@tempdima59\dimen@ \llshiftset\dimen@{#3}\advance\@tempdima11\dimen@ \rrshift\@tempdima \rdivide\@tempdima{100}% \edef\@@tmp{\strip@pt\@tempdima}} \def\XC@cnv@rgb@HTML#1,#2,#3,% {\edef\@@tmp{#1#2#3}} \def\XC@cnv@cmy#1,#2,#3,% {\ifx\tm\XC@mod@rgb \XC@calc@#1,#2,#3,,:C% \else\ifx\tm\XC@mod@cmyk \XC@cnv@cmy@cmyk#1,#2,#3,% \else\ifx\tm\XC@mod@hsb \XC@calc@#1,#2,#3,,:C\expandafter\XC@cnv@rgb@hsb\@@tmp,% \else\ifx\tm\XC@mod@gray \XC@cnv@rgb@gray#1,#2,#3,\XC@calcC\@@tmp\@@tmp \else\ifx\tm\XC@mod@RGB \XC@calc@#1,#2,#3,,:C% \edef\@@scl{\rangeRGB}\expandafter\XC@calc@\@@tmp,,:M% \else\ifx\tm\XC@mod@HTML \XC@calc@#1,#2,#3,,:C\expandafter\XC@cnv@rgb\@@tmp,% \else\ifx\tm\XC@mod@HSB \XC@calc@#1,#2,#3,,:C\expandafter\XC@cnv@rgb@hsb\@@tmp,% \edef\@@scl{\rangeHSB}\expandafter\XC@calc@\@@tmp,,:M% \else\ifx\tm\XC@mod@Gray \XC@cnv@rgb@gray#1,#2,#3,\XC@calcC\@@tmp\@@tmp \edef\@@scl{\rangeGray}\XC@calcM\@@tmp\@@tmp \else \XC@calc@#1,#2,#3,,:N% \fi\fi\fi\fi\fi\fi\fi\fi} \def\XC@cnv@cmy@cmyk#1,#2,#3,% {\edef\@@scl {\ifdim#1\p@<#2\p@ \ifdim#1\p@<#3\p@ #1\else #3\fi \else \ifdim#2\p@<#3\p@ #2\else #3\fi \fi}% \expandafter\XC@calc@\adjustUCRBG,:S% \expandafter\XC@@cnv@cmy@cmyk\@@tmp,#1,#2,#3,} \def\XC@@cnv@cmy@cmyk#1,#2,#3,#4,#5,#6,#7,% {\XC@add#5,#6,#7,,-#1,-#2,-#3,,\@@tmp \edef\@@tmp{\@@tmp,#4}% \expandafter\XC@calc@\@@tmp,:N} \def\XC@cnv@cmyk#1,#2,#3,#4,% {\ifx\tm\XC@mod@rgb \XC@cnv@cmyk@cmy#1,#2,#3,#4,\expandafter\XC@calc@\@@tmp,,:C% \else\ifx\tm\XC@mod@cmy \XC@cnv@cmyk@cmy#1,#2,#3,#4,% \else\ifx\tm\XC@mod@hsb \XC@cnv@cmyk@cmy#1,#2,#3,#4,\expandafter\XC@calc@\@@tmp,,:C% \expandafter\XC@cnv@rgb@hsb\@@tmp,% \else\ifx\tm\XC@mod@gray \XC@cnv@rgb@gray#1,#2,#3,% \edef\@@arg{#4}\XC@calcT\@@tmp\@@tmp \XC@calcC\@@tmp\@@tmp \else\ifx\tm\XC@mod@RGB \XC@cnv@cmyk@cmy#1,#2,#3,#4,\expandafter\XC@calc@\@@tmp,,:C% \edef\@@scl{\rangeRGB}\expandafter\XC@calc@\@@tmp,,:M% \else\ifx\tm\XC@mod@HTML \XC@cnv@cmyk@cmy#1,#2,#3,#4,\expandafter\XC@cnv@cmy\@@tmp,% \else\ifx\tm\XC@mod@HSB \XC@cnv@cmyk@cmy#1,#2,#3,#4,\expandafter\XC@calc@\@@tmp,,:C% \expandafter\XC@cnv@rgb@hsb\@@tmp,% \edef\@@scl{\rangeHSB}\expandafter\XC@calc@\@@tmp,,:M% \else\ifx\tm\XC@mod@Gray \XC@cnv@rgb@gray#1,#2,#3,% \edef\@@arg{#4}\XC@calcT\@@tmp\@@tmp \XC@calcC\@@tmp\@@tmp \edef\@@scl{\rangeGray}\XC@calcM\@@tmp\@@tmp \else \XC@calc@#1,#2,#3,#4,:N% \fi\fi\fi\fi\fi\fi\fi\fi} \def\XC@cnv@cmyk@cmy#1,#2,#3,#4,% {\edef\@@arg{#4}\XC@calc@#1,#2,#3,,:T} \def\XC@cnv@hsb#1,#2,#3,% {\ifx\tm\XC@mod@HSB \edef\@@scl{\rangeHSB}\XC@calc@#1,#2,#3,,:M% \else \XC@cnv@hsb@rgb#1,#2,#3,% \ifx\tm\XC@mod@rgb\else\expandafter\XC@cnv@rgb\@@tmp,\fi \fi} \def\XC@cnv@hsb@rgb#1,#2,#3,% {\llshiftset\dimen@{#1}\dimen@6\dimen@ \rrshift\dimen@ \afterassignment\dimen@\count@=\the\dimen@ \edef\@@tmp{\strip@pt\dimen@}% \ifodd\count@\else\XC@calcC\@@tmp\@@tmp\fi \edef\@@tmp {\ifcase\count@ 0,\@@tmp,1\or \@@tmp,0,1\or 1,0,\@@tmp\or 1,\@@tmp,0\or \@@tmp,1,0\or 0,1,\@@tmp\or 0,\@@tmp,1\fi}% \edef\@@scl{#2}\expandafter\XC@calc@\@@tmp,,:S% \expandafter\XC@calc@\@@tmp,,:C% \edef\@@scl{#3}\expandafter\XC@calc@\@@tmp,,:S} \def\XC@cnv@gray#1,% {\ifx\tm\XC@mod@rgb \XC@calcN{#1}\@@tmp \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}% \else\ifx\tm\XC@mod@cmy \XC@calcC{#1}\@@tmp \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}% \else\ifx\tm\XC@mod@cmyk \XC@calcC{#1}\@@tmp \edef\@@tmp{0,0,0,\@@tmp}% \else\ifx\tm\XC@mod@hsb \XC@calcN{#1}\@@tmp \edef\@@tmp{0,0,\@@tmp}% \else\ifx\tm\XC@mod@RGB \edef\@@scl{\rangeRGB}\XC@calcM{#1}\@@tmp \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}% \else\ifx\tm\XC@mod@HTML \edef\@@scl{\@cclv}\XC@calcM{#1}\@@tmp \XC@calcH\@@tmp\@@tmp \edef\@@tmp{\@@tmp\@@tmp\@@tmp}% \else\ifx\tm\XC@mod@HSB \edef\@@scl{\rangeHSB}\XC@calcM{#1}\@@tmp \edef\@@tmp{0,0,\@@tmp}% \else\ifx\tm\XC@mod@Gray \edef\@@scl{\rangeGray}\XC@calcM{#1}\@@tmp \else \XC@calcN{#1}\@@tmp \fi\fi\fi\fi\fi\fi\fi\fi} \def\XC@cnv@RGB#1,#2,#3,% {\edef\@@scl{\rangeRGB}\XC@calc@#1,#2,#3,,:D\expandafter\XC@cnv@rgb\@@tmp,} \def\XC@cnv@HTML#1,% {\edef\@@tmp{\expandafter\@hex@Hex#1\relax}\expandafter\XC@cnv@HTML@\@@tmp \edef\@@scl{\@cclv}\expandafter\XC@calc@\@@tmp,,:D% \expandafter\XC@cnv@rgb\@@tmp,} \def\XC@cnv@HTML@#1#2#3#4#5#6% {\edef\@@tmp{\number"#1#2,\number"#3#4,\number"#5#6}} \def\XC@cnv@HSB#1,#2,#3,% {\edef\@@scl{\rangeHSB}\XC@calc@#1,#2,#3,,:D\expandafter\XC@cnv@hsb\@@tmp,} \def\XC@cnv@Gray#1,% {\edef\@@scl{\rangeGray}\XC@calcD{#1}\@@tmp \XC@cnv@gray\@@tmp,} \def\XC@cnv@cmyk@compl#1,#2,#3,#4,% {\XC@cnv@cmyk@cmy#1,#2,#3,#4,% \expandafter\XC@calc@\@@tmp,,:C% \expandafter\XC@cnv@cmy@cmyk\@@tmp,} \def\XC@cnv@hsb@compl#1,#2,#3,% {\lshiftset\dimen@{#1}\advance\dimen@\ifdim\dimen@<5\p@-\fi-5\p@ \rshift\dimen@ \edef\@@tmp{\strip@pt\dimen@}% \lshiftset\dimen@{#3}% \@tempdima#2\dimen@ \@tempdimb\@tempdima \advance\@tempdimb10\p@ \advance\@tempdimb-\dimen@ \ifdim\@tempdimb=\z@ \edef\@@tmp{\@@tmp,0,0}% \else \rdivide\@tempdima\@tempdimb \rshift\@tempdimb \edef\@@tmp{\@@tmp,\strip@pt\@tempdima,\strip@pt\@tempdimb}% \fi} \ifx\color@rgb\@undefined \PackageInfo{xcolor}{Color model `rgb' added} \def\color@rgb#1#2% {\convertcolorspec\XC@mod@rgb{#2}\XC@mod@cmyk\XC@@tmp \expandafter\color@cmyk\expandafter#1\expandafter{\XC@@tmp}} \fi \ifx\color@cmyk\@undefined \PackageInfo{xcolor}{Color model `cmyk' added} \def\color@cmyk#1#2% {\convertcolorspec\XC@mod@cmyk{#2}\XC@mod@rgb\XC@@tmp \expandafter\color@rgb\expandafter#1\expandafter{\XC@@tmp}} \fi \ifx\color@cmy\@undefined \PackageInfo{xcolor}{Color model `cmy' added} \def\color@cmy#1#2{\color@cmyk#1{#2,0}} \fi \ifx\color@hsb\@undefined\@tempswatrue \else\def\@@tmp{dvipdfm.def}\ifx\@@tmp\Gin@driver\@tempswatrue \else\def\@@tmp{textures.def}\ifx\@@tmp\Gin@driver\@tempswatrue \else\@tempswafalse\fi\fi\fi \if@tempswa \PackageInfo{xcolor}{Color model `hsb' added} \def\color@hsb#1#2% {\convertcolorspec\XC@mod@hsb{#2}\XC@mod@rgb\XC@@tmp \expandafter\color@rgb\expandafter#1\expandafter{\XC@@tmp}} \fi \ifx\color@gray\@undefined \PackageInfo{xcolor}{Color model `gray' added} \def\color@gray#1#2{\color@rgb#1{#2,#2,#2}} \fi \ifx\color@RGB\@undefined\@tempswatrue \else\ifnum\rangeRGB<255 \@tempswatrue \else\ifnum\rangeRGB>255 \@tempswatrue \else\@tempswafalse\fi\fi\fi \if@tempswa \PackageInfo{xcolor}{Color model `RGB' added} \def\color@RGB#1#2% {\convertcolorspec\XC@mod@RGB{#2}\XC@mod@rgb\XC@@tmp \expandafter\color@rgb\expandafter#1\expandafter{\XC@@tmp}} \fi \ifx\color@HTML\@undefined \PackageInfo{xcolor}{Color model `HTML' added} \def\color@HTML#1#2% {\convertcolorspec\XC@mod@HTML{#2}\XC@mod@rgb\XC@@tmp \expandafter\color@rgb\expandafter#1\expandafter{\XC@@tmp}} \fi \ifx\color@HSB\@undefined \PackageInfo{xcolor}{Color model `HSB' added} \def\color@HSB#1#2% {\convertcolorspec\XC@mod@HSB{#2}\XC@mod@hsb\XC@@tmp \expandafter\color@hsb\expandafter#1\expandafter{\XC@@tmp}} \fi \ifx\color@Gray\@undefined \PackageInfo{xcolor}{Color model `Gray' added} \def\color@Gray#1#2% {\convertcolorspec\XC@mod@Gray{#2}\XC@mod@gray\XC@@tmp \expandafter\color@gray\expandafter#1\expandafter{\XC@@tmp}} \fi \@ifundefined{XC@pst}{% \def\XC@getcolor#1#2% {\begingroup \XC@@getcolor#1\XC@@ \toks@\expandafter{\@@tmp}\aftergroupdef#2{\the\toks@}} \def\XC@@getcolor#1#2\XC@@ {\@ifxempty{#2}% {\expandafter\XC@@@getcolor#1\XC@@}% {\color{#1#2}\let\@@tmp\XC@current@color}} \def\XC@@@getcolor#1#2\XC@@ {\ifx#1\xcolor@ \def\@@tmp{\xcolor@#2}% \else \color{#1#2}\let\@@tmp\XC@current@color \fi} }{% compatibility code begin \def\XC@getcolor#1#2% {\@ifundefined{\string\color@#1}% {\begingroup\color{#1}% \edef\@@tmp {\noexpand\edef\noexpand#2{\noexpand\expandafter\noexpand\c@lor@to@ps \current@color\noexpand\@@}}% \expandafter\endgroup\@@tmp}% {\edef#2{\XC@usecolor{#1}}}} }% compatibility code end \def\XC@usecolor#1{\expandafter\XC@@usecolor#1\XC@@} \def\XC@@usecolor#1#2\XC@@ {\ifx#1\xcolor@ \expandafter\expandafter\expandafter\c@lor@to@ps#1#2\@@ \else \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter \expandafter\c@lor@to@ps\csname\string\color@#1#2\endcsname\@@ \fi \space} \let\XC@c@lor@to@ps\XC@usecolor \let\pst@getcolor\XC@getcolor \@ifundefined{XC@pst}{% \let\pst@usecolor\XC@usecolor }{} \def\c@lor@special#1#2{\edef\@tempa{\write#1{#2}}\@tempa} \def\normalcolor{\let\current@color\default@color\set@color} \AtBeginDocument{\let\default@color\current@color} \@tfor\@@tmp:={dvipdf}{dvipdfm}{dvips}{pctex32}\do {\edef\@@tmp{\@@tmp.def}% \ifx\Gin@driver\@@tmp \def\c@lor@@named#1,#2,#3\@@#4{\edef#4{ #1}} \def\define@color@named#1#2{\let\@@col\@nnil} \@break@tfor\fi} \@tfor\@@tmp:={dvipsone}{pctexps}{pdftex}{tcidvi}{truetex}{vtex}\do {\edef\@@tmp{\@@tmp.def}% \ifx\Gin@driver\@@tmp \def\c@lor@@named#1,#2,#3\@@#4% {\edef#4{\expandafter\expandafter\expandafter\@secondoffive \csname\string\color@#1\endcsname}} \def\define@color@named#1#2% {\edef\@@col{#2}\@namedef{\string\color@#1}{{}{#2}{}{}{}}} \@break@tfor\fi} \@tfor\@@tmp:={textures}\do {\edef\@@tmp{\@@tmp.def}% \ifx\Gin@driver\@@tmp \def\c@lor@@named#1,#2,#3\@@#4% {\edef\@tempa{\color@P@custom{#1}{\if!#2!1\else#2\fi}}% \expandafter\def\expandafter#4\@tempa} \def\define@color@named#1#2% {\edef\@tempa{{#1}{#2}}\expandafter\AddCustomColor\@tempa \edef\@@col{#2}} \@break@tfor\fi} \definecolorset{rgb}{}{}{red,1,0,0;green,0,1,0;blue,0,0,1} \definecolorset{cmyk}{}{}{cyan,1,0,0,0;magenta,0,1,0,0;yellow,0,0,1,0} \definecolorset{gray}{}{}{black,0;darkgray,.25;gray,.5;lightgray,.75;white,1} \colorlet{orange}{red!50!yellow} \colorlet{violet}{blue!50!red} \colorlet{purple}{violet!50!red} \colorlet{brown}{violet!50!yellow} \XC@colornames \XC@catcodes \let\XC@catcodes\relax \@nameuse{xcolorcmd} \color{black} \endinput %% %% End of file `xcolor.sty'. semantik-0.9.5/src/templates/beamer/beamermindist/xxcolor.sty000664 000000 000000 00000004222 12732552614 024431 0ustar00rootroot000000 000000 \ProvidesPackage{xxcolor}[2003/10/24 ver 0.1] \NeedsTeXFormat{LaTeX2e}[1995/12/01] % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the LaTeX Project Public License Distributed from CTAN % archives in directory macros/latex/base/lppl.txt. \RequirePackage{xcolor} % Command \newcolormixin{\somecommand} % % Description: % % After this command has been called, you can assign a partial color % specification to \somecommand. Every time a color is set, the % partial color specification in \somecommand will be applied to the % current color. % % Examples: % % \newcolormixin\mymixin % \def\mymixin{!50!white} % % \newcolormixin\anothermixin % \def\anothermixin{!50!red} \def\newcolormixin#1{% \expandafter\def\csname XC@mixin@\the\XC@nummixins\endcsname{#1}% \advance\XC@nummixins\@ne% \ifx#1\@undefined\def#1{}\fi} \newcount\XC@nummixins \newcount\XC@countmixins % Command \applycolormixins{colorname} % % Description: % % Applies all color mixins that have been defined using \newcolormixin % to the color named colorname. % % Examples: % % \applycolormixins{mycolor} \def\applycolormixins#1{% \XC@countmixins=0\relax% \loop% \ifnum\XC@countmixins<\XC@nummixins% \colorlet{#1}{#1\csname XC@mixin@\the\XC@countmixins\endcsname}% \advance\XC@countmixins\@ne\relax% \repeat% } % Internal: \def\XC@mcolor{% \ifnum\XC@nummixins>0% \@namelet{\string\color@XC@mixtmp}{\string\color@.}% \applycolormixins{XC@mixtmp}% \@namelet{current@color}{\string\color@XC@mixtmp}% \fi% } % Environment colormixin % % #1 = full xcolor specification after the first ! ("white" may not be % omitted) % % Description: % % Inside the environment, all colors get the specified mixin. May be % nested. % % Examples: % % \color{red}This is red. % \begin{colormixin}{25!black} % This is dark red. % \color{blue} % This is dark blue. % \end{colormixin} % This is normal red once more. \newcolormixin\colorcurrentmixin \newenvironment{colormixin}[1]% {\edef\colorcurrentmixin{!#1\colorcurrentmixin}\color{.}}{} \def\pgfalternateextension{\colorcurrentmixin} \endinput semantik-0.9.5/src/templates/beamer/main.tex000664 000000 000000 00000003370 12732552614 021020 0ustar00rootroot000000 000000 % LaTeX Beamer template % this file is part of the Semantik templates % http://freehackers.org/~tnagy/semantik.html % created by Thomas Nagy in 2004 for Kdissert % % Permission is granted to redistribute copies and % derivated works of this script (main.tex) without % any restrictions. \documentclass{beamer} %% based on an original file from Till Tantau (thanks!) \mode { \usetheme{@theme@} % or ... \setbeamercovered{transparent} % or whatever (possibly just delete it) } \usepackage[@babel@]{babel} \usepackage{ucs} \usepackage[utf8x]{inputenc} % or whatever \usepackage{times} %\usepackage[T1]{fontenc} % Or whatever. Note that the encoding and the font should match. If T1 % does not look nice, try deleting the line with the fontenc. \usepackage{amsmath} % math extension - one probably wants to use symbols like '[' (written as '$[$') \usepackage{lmodern,textcomp} #ifdef @each_subsection_off@ % Delete this, if you do not want the table of contents to pop up at % the beginning of each subsection: \AtBeginSubsection[] { \begin{frame} % \frametitle{Outline} \tableofcontents[currentsection,currentsubsection] \end{frame} } #endif #ifdef @uncover_stepwise@ % If you wish to uncover everything in a step-wise fashion, uncomment % the following command: \beamerdefaultoverlayspecification{<+->} #endif #ifndef @doc_title_off@ \title{@doc_title@} #endif #ifndef @doc_date_off@ \date{@doc_date@} #endif #ifndef @doc_author_off@ \author{@doc_author@} #endif \institute{@doc_company@} \begin{document} #ifndef @doc_title_off@ \frame[plain]{\titlepage} #endif #ifndef @doc_tableofcontents_off@ \begin{frame} \frametitle{@content_title@} \tableofcontents \end{frame} #endif @doc_content@ \end{document} semantik-0.9.5/src/templates/beamer/wscript000664 000000 000000 00000001662 12732552614 020772 0ustar00rootroot000000 000000 #! /usr/bin/python # -*- mode: python encoding: UTF-8 -*- ''' run: $ waf configure $ waf $ waf --view or just: $ waf --view ''' VERSION = '0.0.1' APPNAME = 'the_docs' top = '.' import os def options(opt): opt.add_option('--view', action='store_true', default=False, help='View the document') def configure(conf): conf.load('tex') cwd = os.getcwd() cc = cwd + '/beamermindist/' conf.find_program(['okular', 'kpdf', 'xpdf', 'gnome-open'], var='VIEW', mandatory=False) lst = [] for x in "themes/color themes/font themes/inner themes/outer themes/theme art".split(): lst.append(cc+x) u = ":".join(lst) conf.env.LATEX = "; export TEXINPUTS=%s:$TEXINPUTS; export GS_OPTIONS=\"-sPAPERSIZE=a4\"; %s" % (u, conf.env.LATEX) def build(bld) : bld(features='tex', type='pdflatex', source='main.tex') def view(ctx): ctx.exec_command(ctx.env.VIEW + ['build/main.pdf']) if bld.env.VIEW and bld.options.view: bld.add_post_fun(view) semantik-0.9.5/src/templates/html.sem.py000664 000000 000000 00000005602 12732552614 020220 0ustar00rootroot000000 000000 #sem:name: Web document #sem:tip: Generates a simple html document with a stylesheet # Thomas Nagy, 2007-2015 # exclude # caption import os, shutil, time, sys outdir = sembind.get_var('outdir')+'/'+sembind.get_var('pname') settings = { 'doc_content':'', 'doc_title':'', } add_globals(settings) try: tm = time.strftime('.%d-%b-%y--%H-%M-%S', time.gmtime(os.stat(outdir).st_mtime)) os.rename(outdir, outdir+tm) except OSError: pass try: os.makedirs(outdir) except OSError: debug("Cannot create folder " + outdir) # copy the pictures cwd = os.getcwd() os.chdir(sembind.get_var('temp_dir')) pics = {} # map the id to the picture lst = os.listdir('.') for x in lst: if x.startswith('diag-') and not x.endswith('pdf'): pics[ x.replace('diag-', '').split('.')[0] ] = x shutil.copy2(x, outdir) os.chdir(cwd) buf = [] out = buf.append def p(s): return sembind.protectHTML(s) def x(s): return sembind.protectXML(s) def print_nodes(node, niv, lbl_lst): lbl = ".".join(lbl_lst) typo = node.get_val('type') if typo == 'text': if niv == 0: settings['doc_title'] = node.get_val('summary') elif niv in range(5): out('%s%s\n' % \ (niv, lbl, node.get_val('summary'), niv)) y = node.get_val('text') out(p(y)) elif typo == 'table': rows = node.num_rows() cols = node.num_cols() if rows > 0 and cols > 0: caption = node.get_var('caption') if not caption: caption = node.get_val('summary') out('\n') out('\n') out('\n' % x(caption)) out('\n') for i in range(rows): out('\t\n') for j in range(cols): if i>0 and j>0: out('\t\t\n' % x(node.get_cell(i, j))) else: out('\t\t\n' % x(node.get_cell(i, j))) out('\t\n') out('\n') out('
    %s
    %s%s
    \n') out('\n') elif typo == 'img' or typo == 'diag': id = node.get_val('id') if id in pics: caption = node.get_var('caption') if not caption: caption = node.get_val('summary') style = node.get_var('picstyle') if not style: w = int(node.get_val('pic_w')) h = int(node.get_val('pic_h')) if w > 800: style = " style='width:800px;'" divstyle = node.get_var('picdivstyle') #captionstyle = node.get_var('piccaptionstyle') src = pics[id] out('

    \"%s\"

    \n' % (divstyle, src, x(caption), x(caption), style)) num = node.child_count() for i in range(num): print_nodes(node.child_num(i), niv+1, lbl_lst+[str(i+1)]) # the main document print_nodes(Root(), 0, []); settings['doc_content'] = "".join(buf) # now write the document transform("/html/index.html", outdir+'/index.html', settings) # css file shutil.copy2(template_dir()+'/html/def.css', outdir) # okay, code generation has worked visualize('html', outdir+'/index.html') semantik-0.9.5/src/templates/html/000775 000000 000000 00000000000 12732552614 017060 5ustar00rootroot000000 000000 semantik-0.9.5/src/templates/html/def.css000664 000000 000000 00000002676 12732552614 020343 0ustar00rootroot000000 000000 /* * html template * this file is part of the Semantik templates * http://freehackers.org/~tnagy/semantik.html * created by Thomas Nagy in 2004 for Kdissert * * Permission is granted to redistribute copies and * derivated works of this file (def.css) without * any restrictions. */ body { font-family: verdana, arial, 'sans serif'; background-color: #e2eed7; font-size: 11px; } span.show_niv { margin: 7px; } h1 { font-size: 18px; margin-left: 0px; } h2 { font-size: 16px; margin-left: 7px;} h3 { font-size: 14px; margin-left: 14px;} h4 { font-size: 12px; margin-left: 28px;} table.sem_table { font-family: "Lucida Grande", "Lucida Sans Unicode", sans-serif; font-size: 11px; border-collapse: collapse; color: #212424; margin: 3px; } table.sem_table td, table.sem_table th { border: 1px solid black; /*#c5e894;*/ padding: 3px; padding-left: 5px; padding-right: 5px; cursor: default; } table.sem_table th { font-weight: bold; background-color: #c5e894; } table.sem_table thead { background: #524123; } table.sem_table tfoot { color: #ffffff; background: #524123; } table.sem_table tbody tr td { background: #DDF0BD; } table.sem_table tbody tr td:hover, table.sem_table tbody tr td:hover { background: #c5e894; } /* caption { width: 100%; height: 39px; font-size: 0; line-height: 0; text-indent: -5000em; background: url(caption.gif) no-repeat 98% 0; } caption:hover { background-position: 98% 100%; }*/ semantik-0.9.5/src/templates/html/index.html000664 000000 000000 00000000327 12732552614 021057 0ustar00rootroot000000 000000 @doc_title@ @doc_content@ semantik-0.9.5/src/templates/java.sem.py000664 000000 000000 00000004121 12732552614 020170 0ustar00rootroot000000 000000 #sem:name: Java applet #sem:tip: Generates a web applet in java (requires java) #sem:picture # Thomas Nagy, 2007-2015 import os, shutil, time, sys # TODO for the moment it does not work outdir = sembind.get_var('outdir')+'/'+sembind.get_var('pname') try: tm = time.strftime('.%d-%b-%y--%H-%M-%S', time.gmtime(os.stat(outdir).st_mtime)) os.rename(outdir, outdir+tm) except OSError: pass try: os.makedirs(outdir) except OSError: sys.stderr.write("Cannot create folder " + outdir) try: os.makedirs(outdir + '/pics') except OSError: sys.stderr.write("Cannot create the pics folder in %s" % outdir) for x in "Makefile main.html Kadapplet.java Mapview.java".split(): shutil.copy2(template_dir() + '/java/'+x, outdir) cwd = os.getcwd() os.chdir(sembind.get_var('temp_dir')) pics = {} # map the id to the picture lst = os.listdir('.') for x in lst: if x.startswith('diag-') or x.startswith('wholemap'): pics[ x.replace('diag-', '').split('.')[0] ] = x shutil.copy2(x, outdir + '/pics') os.chdir(cwd) code = [] def out(s): global code code.append(s) def low_coords(node): x = float(node.get_val('x')) y = float(node.get_val('y')) num = node.child_count() for i in range(num): x2, y2 = low_coords(node.child_num(i)) if x2 < x: x = x2 if y2 < y: y = y2 return (x, y) def print_rec(node, X, Y): x = float(node.get_val('x')) - X y = float(node.get_val('y')) - Y w = float(node.get_val('w')) h = float(node.get_val('h')) if node.get_val('type') == 'text': txt = node.get_val('text') txt = clear_html(txt) txt = repr(txt)[1:-1].replace('"', '\\"') s = '\nif (x > %f && y > %f && x < %f && y < %f) { return "%s"; }\n' % (x, y, x+w, y+w, txt) out(s) num = node.child_count() for i in range(num): print_rec(node.child_num(i), X, Y) root = Root() x, y = low_coords(root) out("/** Generated by Semantik */\n\n") out("public class TextCoord\n{\n") out("public static String coordToText(double x, double y) {\n") print_rec(root, x - 25, y - 25) out("return \"\";\n") out("}\n}\n") file = open(outdir+'/TextCoord.java', 'w') try: file.write(''.join(code)) finally: file.close() semantik-0.9.5/src/templates/java/000775 000000 000000 00000000000 12732552614 017035 5ustar00rootroot000000 000000 semantik-0.9.5/src/templates/java/Kadapplet.java000664 000000 000000 00000001614 12732552614 021607 0ustar00rootroot000000 000000 /** Generated by Semantik */ import java.awt.*; import java.awt.event.*; import java.net.*; import java.applet.*; import javax.swing.*; public class Kadapplet extends JApplet { Mapview m_mapview; public void init() { // System Look and Feel String laf = UIManager.getSystemLookAndFeelClassName(); try { UIManager.setLookAndFeel(laf); // UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); } catch (UnsupportedLookAndFeelException exc) { System.err.println("Warning: UnsupportedLookAndFeel: " + laf); } catch (Exception exc) { System.err.println("Error loading " + laf + ": " + exc); } m_mapview = new Mapview(); getContentPane().add(m_mapview, BorderLayout.CENTER); m_mapview.setPreferredSize(new Dimension(200, 300)); } public void stop() { if (m_mapview != null) { getContentPane().remove(m_mapview); m_mapview = null; } } } semantik-0.9.5/src/templates/java/Makefile000664 000000 000000 00000000455 12732552614 020501 0ustar00rootroot000000 000000 SOURCES=Kadapplet.java Mapview.java TextCoord.java .java.class: javac $< all: Kadapplet.jar Kadapplet.jar: $(SOURCES) $(SOURCES:.java=.class) jar cvf $@ $(SOURCES:.java=.class) pics/ clean: \rm -f *.jar *.class view: Kadapplet.jar appletviewer main.html .SUFFIXES: .SUFFIXES: .java .class semantik-0.9.5/src/templates/java/Mapview.java000664 000000 000000 00000004416 12732552614 021315 0ustar00rootroot000000 000000 /** Generated by Semantik */ import javax.swing.*; import javax.swing.event.*; import javax.swing.text.*; import javax.swing.border.*; import javax.swing.colorchooser.*; import javax.swing.filechooser.*; import javax.accessibility.*; import java.awt.*; import java.awt.event.*; import java.beans.*; import java.util.*; import java.io.*; import java.applet.*; import java.net.*; class Mapview extends JScrollPane implements MouseListener, MouseMotionListener { Point m_oldposition; Point m_initclick; double m_picwidth; double m_picheight; Mapview() { super(); // Panel to hold the map picture JPanel panel = new JPanel(new BorderLayout()); String path = "/pics/wholemap.png"; ImageIcon pic = new ImageIcon(getClass().getResource(path)); m_picwidth = pic.getIconWidth(); m_picheight = pic.getIconHeight(); panel.add(new JLabel(pic), BorderLayout.CENTER); getViewport().add(panel); JScrollBar vsb = getVerticalScrollBar(); JScrollBar hsb = getHorizontalScrollBar(); vsb.setValue(pic.getIconHeight()); hsb.setValue(pic.getIconWidth()); addMouseListener(this); addMouseMotionListener(this); } public void mouseExited(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } public void mousePressed(MouseEvent e) { m_initclick = e.getPoint(); m_oldposition = getViewport().getViewPosition(); } public void mouseClicked(MouseEvent e) { } public void mouseMoved(MouseEvent e) { Rectangle r = getViewport().getViewRect(); // will not work with zoom double x = e.getPoint().getX() + r.getX(); double y = e.getPoint().getY() + r.getY(); String text = TextCoord.coordToText(x, y); /*if (text==null || text.length() < 1) { text = ""+x+" "+y; }*/ setToolTipText(text); } public void mouseDragged(MouseEvent e) { double x = m_oldposition.getX() + m_initclick.getX() - e.getPoint().getX(); double y = m_oldposition.getY() + m_initclick.getY() - e.getPoint().getY(); Rectangle r = getViewport().getViewRect(); if (x < 0) x=0; if (y < 0) y=0; if (x > m_picwidth - r.getWidth()) x = m_picwidth - r.getWidth(); if (y > m_picheight - r.getHeight()) y = m_picheight - r.getHeight(); Point p = new Point(); p.setLocation( x, y ); getViewport().setViewPosition( p ); } } semantik-0.9.5/src/templates/java/main.html000664 000000 000000 00000000335 12732552614 020650 0ustar00rootroot000000 000000 Map Applet semantik-0.9.5/src/templates/odp.sem.py000664 000000 000000 00000011444 12732552614 020037 0ustar00rootroot000000 000000 #sem:name: OpenDocument Presentation #sem:tip: Generates presentations for Kpresenter or OpenOffice.org Impress # Thomas Nagy, 2007-2015 mimetype = "application/vnd.oasis.opendocument.presentation" import os, shutil, time, zipfile, sys, StringIO outdir = sembind.get_var('outdir')+'/'+sembind.get_var('pname') settings = { 'doc_content':'', 'manif':'', 'oolang':'fr_FR', } add_globals(settings) try: tm = time.strftime('.%d-%b-%y--%H-%M-%S', time.gmtime(os.stat(outdir).st_mtime)) os.rename(outdir, outdir+tm) except OSError: pass try: os.makedirs(outdir) except OSError: debug("Cannot create folder " + outdir) try: os.mkdir(outdir+'/META-INF') except: raise buf = [] out = buf.append def p(s): return sembind.protectHTML(s) def x(s): return sembind.protectXML(s) def print_slide(node, niv): txt = x(node.get_val('summary')) if niv == 0: begin = """ %s """ end =""" """ out(begin % x(txt)) num = node.child_count() if num: out("\n") out(' \n') for i in range(num): print_slide(node.child_num(i), niv+1) out(" \n") out("\n") out(end) other = """ SOCIETE AUTRES_IDEES_A_TRAITER """ else: if txt: out('\n') out('%s\n' % txt) num = node.child_count() if num: out('\n') for i in range(num): print_slide(node.child_num(i), niv+1) out("\n") if txt: out('\n') def print_nodes(node, niv): num = node.child_count() for i in range(num): subtree = node.child_num(i) #print_nodes(node.child_num(i), niv+1) sm = x(subtree.get_val('summary')) num = subtree.child_count() if niv == 0 and num >= 1: out('\n' % sm) elif niv == 1 and num >= 1: out('\n' % sm) if int(subtree.get_val('tree_size')) < 10: print_slide(subtree, 0); elif niv == 0: print_nodes(subtree, 1) elif niv == 1: print_nodes(subtree, 2) else: sys.stderr.write("transforming this map into slides makes kitten cry") # the main content print_nodes(Root(), 0); settings['doc_content'] = "".join(buf) # prepare files transform("/odp/manifest.xml", outdir+'/META-INF/manifest.xml', settings) for x in "content.xml settings.xml styles.xml meta.xml".split(): transform("/odp/"+x, outdir+'/'+x, settings) # add files to the zip file = zipfile.ZipFile(outdir+'/main.odp', mode='w') os.chdir(outdir) file.writestr('mimetype', mimetype) for x in "content.xml styles.xml meta.xml".split(): file.write(x)#, compress_type=zipfile.ZIP_DEFLATED) file.write('META-INF/manifest.xml')#, compress_type=zipfile.ZIP_DEFLATED) file.close() # and remove the useless stuff os.popen('cd %s && rm -rf *.xml META-INF' % outdir) visualize('odp', outdir+'/main.odp') semantik-0.9.5/src/templates/odp/000775 000000 000000 00000000000 12732552614 016676 5ustar00rootroot000000 000000 semantik-0.9.5/src/templates/odp/content.xml000664 000000 000000 00000026327 12732552614 021104 0ustar00rootroot000000 000000 @doc_content@ semantik-0.9.5/src/templates/odp/manifest.xml000664 000000 000000 00000001502 12732552614 021224 0ustar00rootroot000000 000000 @manif@ semantik-0.9.5/src/templates/odp/meta.xml000664 000000 000000 00000002333 12732552614 020347 0ustar00rootroot000000 000000 OpenOffice.org/2.0$Linux OpenOffice.org_project/680m5$Build-9073 no comment 2007-07-23T20:55:11 2007-07-23T20:55:55 @oolang@ 2 PT52S semantik-0.9.5/src/templates/odp/settings.xml000664 000000 000000 00000022053 12732552614 021262 0ustar00rootroot000000 000000 -3007-4152965127784view1falsefalsetruetruefalsefalsefalsefalsetrue1500false//////////////////////////////////////////8=//////////////////////////////////////////8=falsetruefalse00falsefalsetruefalse0001-3007-4152965227785100010005005001000100050015001false1500truetrue$(user)/config/standard.sob0$(user)/config/standard.soc$(user)/config/standard.sod1250$(user)/config/standard.sog$(user)/config/standard.sohtruefalsetruetruefalsetruefalsefalsetruefalsefalsefalsefalsefalse$(user)/config/standard.soefalse4false0low-resolutionGeneric PrinterXgH+/0dlbmVyaWMgUHJpbnRlcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU0dFTlBSVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAMApAAAAAAA//8BAAhSAAAEdAAASm9iRGF0YSAxCnByaW50ZXI9R2VuZXJpYyBQcmludGVyCm9yaWVudGF0aW9uPVBvcnRyYWl0CmNvcGllcz0xCnNjYWxlPTEwMAptYXJnaW5kYWp1c3RtZW50PTAsMCwwLDAKY29sb3JkZXB0aD0yNApwc2xldmVsPTAKY29sb3JkZXZpY2U9MApQUERDb250ZXhEYXRhClBhZ2VTaXplOkE0AAA=falsesemantik-0.9.5/src/templates/odp/styles.xml000664 000000 000000 00000116343 12732552614 020753 0ustar00rootroot000000 000000 semantik-0.9.5/src/templates/odt.sem.py000664 000000 000000 00000016561 12732552614 020050 0ustar00rootroot000000 000000 #sem:name: OpenDocument Text #sem:tip: Generates text documents for Kword or OpenOffice.org Writer # Thomas Nagy, 2007-2015 mimetype = "application/vnd.oasis.opendocument.text" import os, shutil, time, zipfile, sys, StringIO outdir = sembind.get_var('outdir')+'/'+sembind.get_var('pname') globals = { 'DATE':'', 'PAGENUM':'1/1', #'AUTHOR':'', # <- i wish i could find this one in the gui #'SUBJECT':'', } settings = { 'doc_content':'', 'manif':'', 'oolang':'fr_FR', 'piclst':[], 'author':'', 'header_l':'@AUTHOR@', 'header_c':'', 'header_r':'@TITLE@', 'footer_l':'@DATE@', 'footer_c':'@PAGENUM@', 'footer_r':'', } add_globals(settings) def p(s): return sembind.protectHTML(s) def xml(s): return sembind.protectXML(s) # substitute @var@, look if there is not a global variable named like that in the globals already # TODO: use a real parser, but for the moment quote every string for a in settings.keys(): val = settings[a] if len(val)>3: if val[0]=='@' and val[-1]=='@' and not ' ' in val: nvar = val[1:-1] if nvar in settings: settings[a] = xml(settings[nvar]) else: settings[a] = globals.get(nvar, '') try: tm = time.strftime('.%d-%b-%y--%H-%M-%S', time.gmtime(os.stat(outdir).st_mtime)) os.rename(outdir, outdir+tm) except OSError: pass try: os.makedirs(outdir) except OSError: debug("Cannot create folder " + outdir) try: os.makedirs(outdir+'/Pictures') except OSError: debug("Cannot create folder " + outdir) # f** mimes MIMES = {'svg': 'image/svg', 'png': 'image/png', 'jpg': 'image/jpeg', 'jpeg':'image/jpeg', 'gif': 'image/gif'} # copy the pictures cwd = os.getcwd() os.chdir(sembind.get_var('temp_dir')) pics = {} # map the id to the picture tmp_pics = {} lst = os.listdir('.') for x in lst: if x.startswith('diag-') and not x.endswith('.pdf'): tmplst = x.replace('diag-', '').split('.') k = tmplst[0] ext = tmplst[-1] try: tmp_pics[k].append(ext) except KeyError: tmp_pics[k] = [ext] def best_ext(lst): if 'svg' in lst: return 'svg' if 'png' in lst: return 'png' if 'jpg' in lst: return 'jpg' return lst[0] for key, val in tmp_pics.items(): x = best_ext(val) name = 'diag-%s.%s' % (key, x) shutil.copy2(name, outdir + '/Pictures') pics[key] = x os.chdir(cwd) try: os.mkdir(outdir+'/META-INF') except: raise buf = [] out = buf.append def print_nodes(node, niv, lbl_lst): lbl = ".".join(lbl_lst) typo = node.get_val('type') txt = xml(node.get_val('summary')) #out('%s\n' % (nv, nv, txt)) if niv == 0: settings['doc_title'] = node.get_val('summary') elif niv in range(8) and typo == 'text': for xxx in range(niv): if xxx == 0: out('') else: out('') out('') #out('%s' % txt) out('%s\n' % (niv, niv, txt)) for xxxx in range(niv): out('') out('') #out('%s %s\n' % (niv, niv, lbl, txt)) if typo == 'text': y = node.get_val('text') if y: out('') out('') out(clear_html(y)) out('') out('') elif typo == 'table': rows = node.num_rows() cols = node.num_cols() if rows>0 and cols>0 and not node.get_var('exclude_table'): caption = node.get_var('tbl_caption') if not caption: caption = '(TODO: set a caption for this table! -> var tbl_caption)' out('\n') out('\n') #out('%s\n' % xml(caption)) out('\n' % cols) for i in range(rows): out('\t\n') for j in range(cols): if i>0 and j>0: out('\t\t\n') out('\t\t\t%s\n' % xml(node.get_cell(i, j))) out('\t\t\n') else: out('\t\t\n') out('\t\t\t%s\n' % xml(node.get_cell(i, j))) out('\t\t\n') out('\t\n') out('\n') out('\n') elif typo == 'pic' or typo == 'diag': id = node.get_val('id') if id in pics and not node.get_var('exclude_pic'): caption = node.get_var('pic_caption') if not caption: caption = '(TODO: set a caption for this picture!)' ext = pics[id] #out('\n') #out('\n') #out('\n') #out('') #out('' % pics[id]) #out('\n') #out('\n') #out('\n') #out('\n') #out('\n') #out('\n') #out('\n') #out('\n') #out('\n') w = float(node.get_val('widthHint')) / 36; # yuck h = float(node.get_val('heightHint')) / 36; if w > 15: h = (15 * h) / w w = 15 name = 'diag-%s.%s' % (id, ext) out('\n') out('\n') out('\n' % name) out('\n') out('\n') settings['manif'] += '' % (MIMES[ext], name) settings['piclst'].append(name) num = node.child_count() for i in range(num): print_nodes(node.child_num(i), niv+1, lbl_lst+[str(i+1)]) # the main content print_nodes(Root(), 0, []); settings['doc_content'] = "".join(buf) # prepare files transform("/odt/manifest.xml", outdir+'/META-INF/manifest.xml', settings) for x in "content.xml settings.xml styles.xml meta.xml".split(): transform("/odt/"+x, outdir+'/'+x, settings) # add files to the zip file = zipfile.ZipFile(outdir+'/main.odt', mode='w') os.chdir(outdir) file.writestr('mimetype', mimetype) for x in "content.xml styles.xml meta.xml".split(): file.write(x)#, compress_type=zipfile.ZIP_DEFLATED) file.write('META-INF/manifest.xml')#, compress_type=zipfile.ZIP_DEFLATED) for x in settings['piclst']: file.write('Pictures/%s' % x) file.close() # and remove the useless stuff os.popen('cd %s && rm -rf *.xml META-INF Pictures' % outdir) visualize('odt', outdir+'/main.odt') semantik-0.9.5/src/templates/odt/000775 000000 000000 00000000000 12732552614 016702 5ustar00rootroot000000 000000 semantik-0.9.5/src/templates/odt/content.xml000664 000000 000000 00000035640 12732552614 021106 0ustar00rootroot000000 000000 @doc_content@ semantik-0.9.5/src/templates/odt/manifest.xml000664 000000 000000 00000001472 12732552614 021236 0ustar00rootroot000000 000000 @manif@ semantik-0.9.5/src/templates/odt/meta.xml000664 000000 000000 00000002140 12732552614 020347 0ustar00rootroot000000 000000 OpenOffice.org/2.0$Linux OpenOffice.org_project/680m5$Build-9073 2007-05-18T17:44:12 2007-05-18T17:51:46 @oolang@ 3 PT7M36S semantik-0.9.5/src/templates/odt/settings.xml000664 000000 000000 00000017431 12732552614 021272 0ustar00rootroot000000 000000 2080 0 26594 11924 true false view2 5306 34140 0 2080 26592 14002 0 100 false true false false 1 true false 0 false false false false true true true true false 0 false true true true true false false false true false false false false true false false true false false false true true 0 false false high-resolution false true true false semantik-0.9.5/src/templates/odt/styles.xml000664 000000 000000 00000031516 12732552614 020755 0ustar00rootroot000000 000000 @header_l@@header_c@@header_r@ @footer_l@@footer_c@@footer_r@ semantik-0.9.5/src/templates/pdflatex.sem.py000664 000000 000000 00000011035 12732552614 021060 0ustar00rootroot000000 000000 #sem:name: PDF LaTeX #sem:tip: Generates a LaTeX project for obtaining PDF files # Thomas Nagy, 2007-2015 import os, time, shutil, re, StringIO, getpass # Additional variables: # exclude 1 # picdim [width=10cm] settings = { 'doc_content':'', 'doc_class':'article', 'all_latex':False, 'header_off':'', 'footer_off':'', 'header_l':'', 'header_c':'', 'header_r':'', 'footer_l':'', 'footer_c':r'\thepage/\pageref{LastPage}', 'footer_r':r'\today', 'doc_title':'', 'doc_title_off':'None', 'doc_date':'', 'doc_date_off':'None', 'doc_author':getpass.getuser(), 'doc_author_off':'None', 'babel':'english', # frenchb } add_globals(settings) outdir = sembind.get_var('outdir')+'/'+sembind.get_var('pname') try: tm = time.strftime('.%d-%b-%y--%H-%M-%S', time.gmtime(os.stat(outdir).st_mtime)) os.rename(outdir, outdir+tm) except OSError: pass try: os.makedirs(outdir) except OSError: debug("Cannot create folder " + outdir) # do the document in latex ? def tex_convert(s): return s if not settings.get('all_latex', 0): tex_convert = protect_tex # make the pictures available cwd = os.getcwd() os.chdir(sembind.get_var('temp_dir')) pics = {} # map the id to the picture lst = os.listdir('.') for x in lst: if x.startswith('diag-'): key = x.split('.')[0].replace('diag-', '') if x.endswith('.pdf') or not key in pics: pics[key] = x shutil.copy2(x, outdir) os.chdir(cwd) buf = [] out = buf.append def print_nodes(node, niv): sm = tex_convert(node.get_val('summary')) if settings['doc_class'] in ['book', 'report']: if niv == 1: out('\\chapter{%s}\n' % sm) elif niv == 2: out('\\section{%s}\n' % sm) elif niv == 3: out('\\subsection{%s}\n' % sm) elif niv == 4: out('\\subsubsection{%s}\n' % sm) elif niv == 5: out('\\paragraph{%s}\n' % sm) else: if niv == 1: out('\\section{%s}\n' % sm) elif niv == 2: out('\\subsection{%s}\n' % sm) elif niv == 3: out('\\subsubsection{%s}\n' % sm) elif niv == 4: out('\\paragraph{%s}\n' % sm) typo = node.get_val('type') if typo == 'text': y = node.get_val('text') out(parse_string(y)) elif typo == 'table': rows = node.num_rows() cols = node.num_cols() if rows>0 and cols>0: caption = node.get_var('caption') if not caption: caption = caption = node.get_val('summary') out('\\begin{table}\n') out('\\begin{center}\n') out('\\begin{tabular}{|%s}' % ('c|'*cols)) out(' \\hline\n') for i in range(rows): for j in range(cols): if i == 0 or j == 0: out('\\textbf{%s}' % tex_convert(node.get_cell(i, j))) else: out('%s' % tex_convert(node.get_cell(i, j))) if j < cols - 1: out(" & ") out(' \\\\ \\hline\n') out('\\end{tabular}\n') out('\\end{center}\n') out('\\caption{%s}\n' % tex_convert(caption)) out('\\end{table}\n') out('\n') elif typo == 'img' or typo == 'diag': id = node.get_val('id') if id in pics: caption = node.get_var('caption') if not caption: caption = caption = node.get_val('summary') restrict = node.get_var("picdim") if not restrict: w = int(node.get_val('pic_w')) restrict = "" if (w > 5*72): restrict = "[width=5in]" if not restrict: restrict = "[width=\\textwidth,height=\\textheight,keepaspectratio]" out('\\begin{figure}[htbp]\n') out(' \\begin{center}\n') out(' \\includegraphics%s{%s}\n' % (restrict, pics[id])) out(' \\caption{\\footnotesize{%s}}\n' % tex_convert(caption)) out('%% %s\n' % protect_tex(node.get_val('pic_location'))) out('%% %s\n' % node.get_val('pic_w')) out('%% %s\n' % node.get_val('pic_h')) out(' \\end{center}\n') out('\\end{figure}\n') num = node.child_count() for i in range(num): print_nodes(node.child_num(i), niv+1) root = Root() title = root.get_val('title') if title: settings['doc_title_off']='' settings['doc_title']=title date = r'\today' #root.get_val('date') if date: settings['doc_date_off']='None' settings['doc_date']=date author = root.get_val('pname') if author: settings['doc_author_off']='' settings['doc_author']=author # the main document print_nodes(root, 0); settings['doc_content'] = "".join(buf) # now write main.tex transform("/pdflatex/main.tex", outdir+'/main.tex', settings) # anciliary files shutil.copy2(template_dir()+'/pdflatex/wscript', outdir+'/wscript') shutil.copy2(template_dir()+'/waf', outdir+'/waf') os.chmod(outdir+'/waf', 0755) f = open(outdir + '/run.sh', 'w') try: f.write('#! /bin/sh\npython2 waf configure build --view\n') finally: f.close() os.chmod(outdir + '/run.sh', 0755) # load the preview on main.tex visualize('pdflatex', outdir+'/main.tex') semantik-0.9.5/src/templates/pdflatex/000775 000000 000000 00000000000 12732552614 017723 5ustar00rootroot000000 000000 semantik-0.9.5/src/templates/pdflatex/main.tex000664 000000 000000 00000005646 12732552614 021404 0ustar00rootroot000000 000000 % pdflatex Article template % this file is part of the Semantik templates % http://freehackers.org/~tnagy/semantik.html % created by Thomas Nagy in 2004 for Kdissert % % Permission is granted to redistribute copies and % derivated works of this script (main.tex) without % any restrictions. % main latex includes \documentclass[a4paper,12pt]{@doc_class@} %\usepackage[T1]{fontenc} % on some systems T1 looks ugly %\usepackage[cyr]{aeguill} \usepackage[pdftex]{graphicx} \DeclareGraphicsExtensions{.png,.pdf,.jpg,.jpeg} \usepackage[pdftex, bookmarks=true, bookmarksnumbered=true, pdfpagemode=None, pdfstartview=FitH, pdfpagelayout=SinglePage, colorlinks=true, urlcolor=blue, pdfborder={0 0 0}]{hyperref} \hypersetup{linkcolor=blue} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %interesting settings for the page layout %\setlength{\hoffset}{-18pt} %\setlength{\oddsidemargin}{0pt} % left margin, odd pages %\setlength{\evensidemargin}{9pt} % left margin, even pages %\setlength{\marginparwidth}{54pt} %\setlength{\textwidth}{481pt} % set the text width to about 17cm %\setlength{\marginparsep}{7pt} %\setlength{\topmargin}{0pt} % no margin on top %\setlength{\headheight}{13pt} %\setlength{\headsep}{10pt} %\setlength{\footskip}{27pt} %\setlength{\textheight}{700pt} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% miscalleneous packages \usepackage[@babel@]{babel} % \usepackage[frenchb]{babel} % French settings \usepackage{verbatim} % include eg: source code easily % If you are on Fedora Core you may have problems with accents % in this case replace the accentuated characters like this : % % é -> \'e % è -> \`e % ê -> \^e and so on \usepackage{amsmath} \usepackage{lmodern,textcomp} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % count the number of pages for display on footer \usepackage{lastpage} % the following command need picture files : "logo-school.jpg" % and "logo-company.jpg" in the project directory % % \lhead{\sl \includegraphics[height=1.1cm]{logo-school}} % \chead{} % \rhead{\sl \includegraphics[height=1.2cm]{logo-company}} % % default to utf-8 \usepackage{ucs} \usepackage[utf8x]{inputenc} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %document headers and footers #ifndef @header_off@ #ifndef @footer_off@ \usepackage{fancyhdr} #endif #endif #ifndef @header_off@ \lhead{@header_l@} \chead{@header_c@} \rhead{@header_r@} \renewcommand{\headrulewidth}{0.4pt} \addtolength{\headwidth}{\marginparsep} #endif #ifndef @footer_off@ \lfoot{@footer_l@} \cfoot{@footer_c@} \rfoot{@footer_r@} #endif #ifndef @header_off@ #ifndef @footer_off@ \renewcommand{\footrulewidth}{0.4pt} \pagestyle{fancy} #endif #endif #ifndef @doc_title_off@ \title{@doc_title@} #endif #ifndef @doc_date_off@ \date{@doc_date@} #endif #ifndef @doc_author_off@ \author{@doc_author@} #endif \begin{document} #ifndef @doc_title_off@ \maketitle #endif \tableofcontents @doc_content@ \end{document} semantik-0.9.5/src/templates/pdflatex/wscript000664 000000 000000 00000001351 12732552614 021341 0ustar00rootroot000000 000000 #! /usr/bin/python # -*- mode: python encoding: UTF-8 -*- ''' run: $ waf configure $ waf $ waf --view or just: $ waf --view ''' import os from waflib import Options VERSION = '0.0.1' APPNAME = 'pdf' top = '.' out = 'build' def options(opts): opts.add_option('--view', action='store_true', default=False, help='View the document') def configure(conf): conf.load('tex') if not conf.env['PDFLATEX']: conf.fatal('install pdflatex!') conf.find_program(['okular', 'kpdf', 'xpdf', 'gnome-open'], var='VIEW', mandatory=False) def build(bld) : bld(features='tex', type='pdflatex', source='main.tex') def view(ctx): ctx.exec_command(ctx.env.VIEW + ['build/main.pdf']) if bld.env.VIEW and bld.options.view: bld.add_post_fun(view) semantik-0.9.5/src/templates/s5.sem.py000664 000000 000000 00000011627 12732552614 017607 0ustar00rootroot000000 000000 #sem:name: S5 presentation #sem:tip: Generates a xhtml presentation using s5 # Thomas Nagy, 2007-2015 import os, shutil, time, getpass outdir = sembind.get_var('outdir')+'/'+sembind.get_var('pname') settings = { 'doc_date':'', 'doc_content':'', 'doc_title':'Report', 'doc_author':getpass.getuser(), 'doc_place':'Stockholm', 'doc_company':'Organization' } add_globals(settings) try: tm = time.strftime('.%d-%b-%y--%H-%M-%S', time.gmtime(os.stat(outdir).st_mtime)) os.rename(outdir, outdir+tm) except OSError: pass try: os.makedirs(outdir+'/ui/default/') except OSError: debug('Cannot create folder ' + outdir + '/ui/default/') # copy the pictures cwd = os.getcwd() os.chdir(sembind.get_var('temp_dir')) pics = {} # map the id to the picture lst = os.listdir('.') for x in lst: if x.startswith('diag-') and not x.endswith('pdf'): pics[ x.replace('diag-', '').split('.')[0] ] = x shutil.copy2(x, outdir) os.chdir(cwd) buf = [] out = buf.append def p(s): return sembind.protectHTML(s) def x(s): return sembind.protectXML(s) def print_bullet(node, indent): out('
  • %s
  • \n' % node.get_val('summary')) y = node.get_val('text') out('
    %s
    \n' % p(y)) num = node.child_count() if num: out('
      \n') for i in range(num): print_bullet(node.child_num(i), i) out('
    \n') def print_slide(node, niv): out('\n\n
    \n') out('

    %s

    \n' % node.get_val('summary')) out('
    %s
    \n' % p(node.get_val('text'))) num = node.child_count() if num: out('
      \n') for i in range(num): print_bullet(node.child_num(i), i) out('
    \n') out('
    \n') def print_figure_slides(node, niv): typo = node.get_val('type') if typo in ['table', 'diag', 'img']: out('\n\n
    \n') out('

    %s

    \n' % node.get_val('summary')) if typo == 'table': rows = node.num_rows() cols = node.num_cols() if rows>0 and cols>0: out('\n') out('
    \n') out('\n') out('\n') for i in range(rows): out('\t\n') for j in range(cols): if i>0 and j>0: out('\t\t\n' % x(node.get_cell(i, j))) else: out('\t\t\n' % x(node.get_cell(i, j))) out('\t\n') out('\n') out('
    %s%s
    \n') out('
    \n') out('\n') elif typo == 'img' or typo == 'diag': id = node.get_val('id') if id in pics: caption = node.get_var('caption') if not caption: caption = caption = node.get_val('summary') out('
    \n') out("\n" % pics[id]) out('
    \n') """ restrict = node.get_var("picdim") if not restrict: w = int(node.get_val('pic_w')) restrict = "" if (w > 5*72): restrict = "[width=5in]" if not restrict: restrict = "[width=\\textwidth,height=\\textheight,keepaspectratio]" out('\\begin{figure}[htbp]\n') out(' \\begin{center}\n') out(' \\includegraphics%s{%s}\n' % (restrict, pics[id])) out(' \\caption{\\footnotesize{%s}}\n' % tex_convert(caption)) out('%% %s\n' % protect_tex(node.get_val('pic_location'))) out('%% %s\n' % node.get_val('pic_w')) out('%% %s\n' % node.get_val('pic_h')) out(' \\end{center}\n') out('\\end{figure}\n') """ out("
    \n") num = node.child_count() for i in range(num): print_figure_slides(node.child_num(i), niv+1) def print_nodes(node, niv): has_child_skip = 0 num = node.child_count() for i in range(num): if node.child_num(i).get_var('make_slide'): has_child_skip = 1 break if node.get_var('make_slide'): print_slide(node, niv) # stupid heuristic elif has_child_skip or (int(node.get_val('tree_size')) > 12): if not node.get_var('skip_slide'): out('\n\n
    \n') out('

    %s

    \n' % node.get_val('summary')) out('
    %s
    \n' % p(node.get_val('text'))) # print the main titles num = node.child_count() if num: out('
      \n') for i in range(num): tx = node.child_num(i).get_val('summary') out('
    • %s
    • \n' % tx) out('
      \n') out('
    \n') out('
    \n') num = node.child_count() for i in range(num): print_nodes(node.child_num(i), niv+1) else: print_slide(node, niv) print_figure_slides(node, niv) # the main document print_nodes(Root(), 0); settings['doc_content'] = "".join(buf) # now write the document transform("/s5/index.html", outdir+'/index.html', settings) files_lst = """ framing.css iepngfix.htc opera.css outline.css pretty.css print.css s5-core.css slides.css slides.js semantik.css """.split() shutil.copy2(template_dir()+'/s5/ui/default/blank.gif', outdir+'/ui/default/') for x in files_lst: transform('/s5/ui/default/'+x, outdir+'/ui/default/'+x, settings) visualize('s5', outdir+'/index.html') semantik-0.9.5/src/templates/s5/000775 000000 000000 00000000000 12732552614 016443 5ustar00rootroot000000 000000 semantik-0.9.5/src/templates/s5/index.html000664 000000 000000 00000003566 12732552614 020452 0ustar00rootroot000000 000000 @doc_title@

    @doc_title@

    @doc_author@

    @doc_company@

    @doc_content@
    semantik-0.9.5/src/templates/s5/ui/000775 000000 000000 00000000000 12732552614 017060 5ustar00rootroot000000 000000 semantik-0.9.5/src/templates/s5/ui/default/000775 000000 000000 00000000000 12732552614 020504 5ustar00rootroot000000 000000 semantik-0.9.5/src/templates/s5/ui/default/blank.gif000664 000000 000000 00000000061 12732552614 022257 0ustar00rootroot000000 000000 GIF89a!,T;semantik-0.9.5/src/templates/s5/ui/default/framing.css000664 000000 000000 00000001666 12732552614 022652 0ustar00rootroot000000 000000 /* The following styles size, place, and layer the slide components. Edit these if you want to change the overall slide layout. The commented lines can be uncommented (and modified, if necessary) to help you with the rearrangement process. */ /* target = 1024x768 */ div#header, div#footer, .slide {width: 100%; top: 0; left: 0;} div#header {top: 0; height: 3em; z-index: 1;} div#footer {top: auto; bottom: 0; height: 2.5em; z-index: 5;} .slide {top: 0; width: 92%; padding: 3.5em 4% 4%; z-index: 2; list-style: none;} div#controls {left: 50%; bottom: 0; width: 50%; z-index: 100;} div#controls form {position: absolute; bottom: 0; right: 0; width: 100%; margin: 0;} #currentSlide {position: absolute; width: 10%; left: 45%; bottom: 1em; z-index: 10;} html>body #currentSlide {position: fixed;} /* div#header {background: #FCC;} div#footer {background: #CCF;} div#controls {background: #BBD;} div#currentSlide {background: #FFC;} */ semantik-0.9.5/src/templates/s5/ui/default/iepngfix.htc000664 000000 000000 00000002317 12732552614 023020 0ustar00rootroot000000 000000 semantik-0.9.5/src/templates/s5/ui/default/opera.css000664 000000 000000 00000000317 12732552614 022325 0ustar00rootroot000000 000000 /* DO NOT CHANGE THESE unless you really want to break Opera Show */ .slide { visibility: visible !important; position: static !important; page-break-before: always; } #slide0 {page-break-before: avoid;} semantik-0.9.5/src/templates/s5/ui/default/outline.css000664 000000 000000 00000001270 12732552614 022675 0ustar00rootroot000000 000000 /* don't change this unless you want the layout stuff to show up in the outline view! */ .layout div, #footer *, #controlForm * {display: none;} #footer, #controls, #controlForm, #navLinks, #toggle { display: block; visibility: visible; margin: 0; padding: 0;} #toggle {float: right; padding: 0.5em;} html>body #toggle {position: fixed; top: 0; right: 0;} /* making the outline look pretty-ish */ #slide0 h1, #slide0 h2, #slide0 h3, #slide0 h4 {border: none; margin: 0;} #slide0 h1 {padding-top: 1.5em;} .slide h1 {margin: 1.5em 0 0; padding-top: 0.25em; border-top: 1px solid #888; border-bottom: 1px solid #AAA;} #toggle {border: 1px solid; border-width: 0 0 1px 1px; background: #FFF;} semantik-0.9.5/src/templates/s5/ui/default/pretty.css000664 000000 000000 00000006706 12732552614 022556 0ustar00rootroot000000 000000 /* Following are the presentation styles -- edit away! */ body {background: #FFF; color: #000; font-size: 2em;} :link, :visited {text-decoration: none; color: #00C;} #controls :active {color: #88A !important;} #controls :focus {outline: 1px dotted #227;} h1, h2, h3, h4 {font-size: 100%; margin: 0; padding: 0; font-weight: inherit;} ul, pre {margin: 0; line-height: 1em;} html, body {margin: 0; padding: 0;} blockquote, q {font-style: italic;} blockquote {padding: 0 2em 0.5em; margin: 0 1.5em 0.5em; text-align: center; font-size: 1em;} blockquote p {margin: 0;} blockquote i {font-style: normal;} blockquote b {display: block; margin-top: 0.5em; font-weight: normal; font-size: smaller; font-style: normal;} blockquote b i {font-style: italic;} kbd {font-weight: bold; font-size: 1em;} sup {font-size: smaller; line-height: 1px;} .slide code {padding: 2px 0.25em; font-weight: bold; color: #533;} .slide code.bad, code del {color: red;} .slide code.old {color: silver;} .slide pre {padding: 0; margin: 0.25em 0 0.5em 0.5em; color: #533; font-size: 90%;} .slide pre code {display: block;} .slide ul {margin-left: 5%; margin-right: 7%; list-style: disc;} .slide li {margin-top: 0.75em; margin-right: 0;} .slide ul ul {line-height: 1;} .slide ul ul li {margin: .2em; font-size: 85%; list-style: square;} .slide img.leader {display: block; margin: 0 auto;} div#header, div#footer {background: #005; color: #AAB; font-family: Verdana, Helvetica, sans-serif;} div#header {background: #005; line-height: 1px;} div#footer {font-size: 0.5em; font-weight: bold; padding: 1em 0;} #footer h1, #footer h2 {display: block; padding: 0 1em;} #footer h2 {font-style: italic;} div.long {font-size: 0.75em;} .slide h1 {position: absolute; top: 0.7em; left: 87px; z-index: 1; margin: 0; padding: 0.3em 0 0 50px; white-space: nowrap; font: bold 150%/1em Helvetica, sans-serif; text-transform: capitalize; color: #DDE; background: #005;} .slide h3 {font-size: 130%;} h1 abbr {font-variant: small-caps;} div#controls {position: absolute; left: 50%; bottom: 0; width: 50%; text-align: right; font: bold 0.9em Verdana, Helvetica, sans-serif;} html>body div#controls {position: fixed; padding: 0 0 1em 0; top: auto;} div#controls form {position: absolute; bottom: 0; right: 0; width: 100%; margin: 0; padding: 0;} #controls #navLinks a {padding: 0; margin: 0 0.5em; background: #005; border: none; color: #779; cursor: pointer;} #controls #navList {height: 1em;} #controls #navList #jumplist {position: absolute; bottom: 0; right: 0; background: #DDD; color: #227;} #currentSlide {text-align: center; font-size: 0.5em; color: #449;} #slide0 {padding-top: 3.5em; font-size: 90%;} #slide0 h1 {position: static; margin: 1em 0 0; padding: 0; font: bold 2em Helvetica, sans-serif; white-space: normal; color: #000; background: transparent;} #slide0 h2 {font: bold italic 1em Helvetica, sans-serif; margin: 0.25em;} #slide0 h3 {margin-top: 1.5em; font-size: 1.5em;} #slide0 h4 {margin-top: 0; font-size: 1em;} ul.urls {list-style: none; display: inline; margin: 0;} .urls li {display: inline; margin: 0;} .note {display: none;} .external {border-bottom: 1px dotted gray;} html>body .external {border-bottom: none;} .external:after {content: " \274F"; font-size: smaller; color: #77B;} .incremental, .incremental *, .incremental *:after {color: #DDE; visibility: visible;} img.incremental {visibility: hidden;} .slide .current {color: #B02;} /* diagnostics li:after {content: " [" attr(class) "]"; color: #F88;} */ semantik-0.9.5/src/templates/s5/ui/default/print.css000664 000000 000000 00000001641 12732552614 022354 0ustar00rootroot000000 000000 /* The following rule is necessary to have all slides appear in print! DO NOT REMOVE IT! */.slide, ul {page-break-inside: avoid; visibility: visible !important;}h1 {page-break-after: avoid;}body {font-size: 12pt; background: white;}* {color: black;}#slide0 h1 {font-size: 200%; border: none; margin: 0.5em 0 0.25em;}#slide0 h3 {margin: 0; padding: 0;}#slide0 h4 {margin: 0 0 0.5em; padding: 0;}#slide0 {margin-bottom: 3em;}h1 {border-top: 2pt solid gray; border-bottom: 1px dotted silver;}.extra {background: transparent !important;}div.extra, pre.extra, .example {font-size: 10pt; color: #333;}ul.extra a {font-weight: bold;}p.example {display: none;}#header {display: none;}#footer h1 {margin: 0; border-bottom: 1px solid; color: gray; font-style: italic;}#footer h2, #controls {display: none;}/* The following rule keeps the layout stuff out of print. Remove at your own risk! */.layout, .layout * {display: none !important;}semantik-0.9.5/src/templates/s5/ui/default/s5-core.css000664 000000 000000 00000000612 12732552614 022472 0ustar00rootroot000000 000000 /* Do not edit or override these styles! The system will likely break if you do. */ div#header, div#footer, div#controls, .slide {position: absolute;} html>body div#header, html>body div#footer, html>body div#controls, html>body .slide {position: fixed;} .handout {display: none;} .layout {display: block;} .slide, .hideme, .incremental {visibility: hidden;} #slide0 {visibility: visible;} semantik-0.9.5/src/templates/s5/ui/default/semantik.css000664 000000 000000 00000001642 12732552614 023034 0ustar00rootroot000000 000000 /* * html template * this file is part of the Semantik templates * https://github.com/ita1024/semantik/ * created by Thomas Nagy in 2012 for Semantik * * Permission is granted to redistribute copies and * derivated works of this file (semantik.css) without * any restrictions. */ table.sem_table { font-family: "Lucida Grande", "Lucida Sans Unicode", sans-serif; border-collapse: collapse; color: #212424; margin: 3px; } table.sem_table td, table.sem_table th { border: 1px solid black; /*#c5e894;*/ padding: 3px; padding-left: 5px; padding-right: 5px; cursor: default; } table.sem_table th { font-weight: bold; background-color: #c5e894; } table.sem_table thead { background: #524123; } table.sem_table tfoot { color: #ffffff; background: #524123; } table.sem_table tbody tr td { background: #DDF0BD; } table.sem_table tbody tr td:hover, table.sem_table tbody tr td:hover { background: #c5e894; } semantik-0.9.5/src/templates/s5/ui/default/slides.css000664 000000 000000 00000000356 12732552614 022505 0ustar00rootroot000000 000000 @import url(s5-core.css); /* required to make the slide show run at all */ @import url(framing.css); /* sets basic placement and size of slide components */ @import url(pretty.css); /* stuff that makes the slides look better than blah */semantik-0.9.5/src/templates/s5/ui/default/slides.js000664 000000 000000 00000036527 12732552614 022342 0ustar00rootroot000000 000000 // S5 v1.1 slides.js -- released into the Public Domain // // Please see http://www.meyerweb.com/eric/tools/s5/credits.html for information // about all the wonderful and talented contributors to this code! var undef; var slideCSS = ''; var snum = 0; var smax = 1; var incpos = 0; var number = undef; var s5mode = true; var defaultView = 'slideshow'; var controlVis = 'visible'; var isIE = navigator.appName == 'Microsoft Internet Explorer' ? 1 : 0; var isOp = navigator.userAgent.indexOf('Opera') > -1 ? 1 : 0; var isGe = navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('Safari') < 1 ? 1 : 0; function hasClass(object, className) { if (!object.className) return false; return (object.className.search('(^|\\s)' + className + '(\\s|$)') != -1); } function hasValue(object, value) { if (!object) return false; return (object.search('(^|\\s)' + value + '(\\s|$)') != -1); } function removeClass(object,className) { if (!object) return; object.className = object.className.replace(new RegExp('(^|\\s)'+className+'(\\s|$)'), RegExp.$1+RegExp.$2); } function addClass(object,className) { if (!object || hasClass(object, className)) return; if (object.className) { object.className += ' '+className; } else { object.className = className; } } function GetElementsWithClassName(elementName,className) { var allElements = document.getElementsByTagName(elementName); var elemColl = new Array(); for (var i = 0; i< allElements.length; i++) { if (hasClass(allElements[i], className)) { elemColl[elemColl.length] = allElements[i]; } } return elemColl; } function isParentOrSelf(element, id) { if (element == null || element.nodeName=='BODY') return false; else if (element.id == id) return true; else return isParentOrSelf(element.parentNode, id); } function nodeValue(node) { var result = ""; if (node.nodeType == 1) { var children = node.childNodes; for (var i = 0; i < children.length; ++i) { result += nodeValue(children[i]); } } else if (node.nodeType == 3) { result = node.nodeValue; } return(result); } function slideLabel() { var slideColl = GetElementsWithClassName('*','slide'); var list = document.getElementById('jumplist'); smax = slideColl.length; for (var n = 0; n < smax; n++) { var obj = slideColl[n]; var did = 'slide' + n.toString(); obj.setAttribute('id',did); if (isOp) continue; var otext = ''; var menu = obj.firstChild; if (!menu) continue; // to cope with empty slides while (menu && menu.nodeType == 3) { menu = menu.nextSibling; } if (!menu) continue; // to cope with slides with only text nodes var menunodes = menu.childNodes; for (var o = 0; o < menunodes.length; o++) { otext += nodeValue(menunodes[o]); } list.options[list.length] = new Option(n + ' : ' + otext, n); } } function currentSlide() { var cs; if (document.getElementById) { cs = document.getElementById('currentSlide'); } else { cs = document.currentSlide; } cs.innerHTML = '' + snum + '<\/span> ' + '\/<\/span> ' + '' + (smax-1) + '<\/span>'; if (snum == 0) { cs.style.visibility = 'hidden'; } else { cs.style.visibility = 'visible'; } } function go(step) { if (document.getElementById('slideProj').disabled || step == 0) return; var jl = document.getElementById('jumplist'); var cid = 'slide' + snum; var ce = document.getElementById(cid); if (incrementals[snum].length > 0) { for (var i = 0; i < incrementals[snum].length; i++) { removeClass(incrementals[snum][i], 'current'); removeClass(incrementals[snum][i], 'incremental'); } } if (step != 'j') { snum += step; lmax = smax - 1; if (snum > lmax) snum = lmax; if (snum < 0) snum = 0; } else snum = parseInt(jl.value); var nid = 'slide' + snum; var ne = document.getElementById(nid); if (!ne) { ne = document.getElementById('slide0'); snum = 0; } if (step < 0) {incpos = incrementals[snum].length} else {incpos = 0;} if (incrementals[snum].length > 0 && incpos == 0) { for (var i = 0; i < incrementals[snum].length; i++) { if (hasClass(incrementals[snum][i], 'current')) incpos = i + 1; else addClass(incrementals[snum][i], 'incremental'); } } if (incrementals[snum].length > 0 && incpos > 0) addClass(incrementals[snum][incpos - 1], 'current'); ce.style.visibility = 'hidden'; ne.style.visibility = 'visible'; jl.selectedIndex = snum; currentSlide(); number = 0; } function goTo(target) { if (target >= smax || target == snum) return; go(target - snum); } function subgo(step) { if (step > 0) { removeClass(incrementals[snum][incpos - 1],'current'); removeClass(incrementals[snum][incpos], 'incremental'); addClass(incrementals[snum][incpos],'current'); incpos++; } else { incpos--; removeClass(incrementals[snum][incpos],'current'); addClass(incrementals[snum][incpos], 'incremental'); addClass(incrementals[snum][incpos - 1],'current'); } } function toggle() { var slideColl = GetElementsWithClassName('*','slide'); var slides = document.getElementById('slideProj'); var outline = document.getElementById('outlineStyle'); if (!slides.disabled) { slides.disabled = true; outline.disabled = false; s5mode = false; fontSize('1em'); for (var n = 0; n < smax; n++) { var slide = slideColl[n]; slide.style.visibility = 'visible'; } } else { slides.disabled = false; outline.disabled = true; s5mode = true; fontScale(); for (var n = 0; n < smax; n++) { var slide = slideColl[n]; slide.style.visibility = 'hidden'; } slideColl[snum].style.visibility = 'visible'; } } function showHide(action) { var obj = GetElementsWithClassName('*','hideme')[0]; switch (action) { case 's': obj.style.visibility = 'visible'; break; case 'h': obj.style.visibility = 'hidden'; break; case 'k': if (obj.style.visibility != 'visible') { obj.style.visibility = 'visible'; } else { obj.style.visibility = 'hidden'; } break; } } // 'keys' code adapted from MozPoint (http://mozpoint.mozdev.org/) function keys(key) { if (!key) { key = event; key.which = key.keyCode; } if (key.which == 84) { toggle(); return; } if (s5mode) { switch (key.which) { case 10: // return case 13: // enter if (window.event && isParentOrSelf(window.event.srcElement, 'controls')) return; if (key.target && isParentOrSelf(key.target, 'controls')) return; if(number != undef) { goTo(number); break; } case 32: // spacebar case 34: // page down case 39: // rightkey case 40: // downkey if(number != undef) { go(number); } else if (!incrementals[snum] || incpos >= incrementals[snum].length) { go(1); } else { subgo(1); } break; case 33: // page up case 37: // leftkey case 38: // upkey if(number != undef) { go(-1 * number); } else if (!incrementals[snum] || incpos <= 0) { go(-1); } else { subgo(-1); } break; case 36: // home goTo(0); break; case 35: // end goTo(smax-1); break; case 67: // c showHide('k'); break; } if (key.which < 48 || key.which > 57) { number = undef; } else { if (window.event && isParentOrSelf(window.event.srcElement, 'controls')) return; if (key.target && isParentOrSelf(key.target, 'controls')) return; number = (((number != undef) ? number : 0) * 10) + (key.which - 48); } } return false; } function clicker(e) { number = undef; var target; if (window.event) { target = window.event.srcElement; e = window.event; } else target = e.target; if (target.getAttribute('href') != null || hasValue(target.rel, 'external') || isParentOrSelf(target, 'controls') || isParentOrSelf(target,'embed') || isParentOrSelf(target,'object')) return true; if (!e.which || e.which == 1) { if (!incrementals[snum] || incpos >= incrementals[snum].length) { go(1); } else { subgo(1); } } } function findSlide(hash) { var target = null; var slides = GetElementsWithClassName('*','slide'); for (var i = 0; i < slides.length; i++) { var targetSlide = slides[i]; if ( (targetSlide.name && targetSlide.name == hash) || (targetSlide.id && targetSlide.id == hash) ) { target = targetSlide; break; } } while(target != null && target.nodeName != 'BODY') { if (hasClass(target, 'slide')) { return parseInt(target.id.slice(5)); } target = target.parentNode; } return null; } function slideJump() { if (window.location.hash == null) return; var sregex = /^#slide(\d+)$/; var matches = sregex.exec(window.location.hash); var dest = null; if (matches != null) { dest = parseInt(matches[1]); } else { dest = findSlide(window.location.hash.slice(1)); } if (dest != null) go(dest - snum); } function fixLinks() { var thisUri = window.location.href; thisUri = thisUri.slice(0, thisUri.length - window.location.hash.length); var aelements = document.getElementsByTagName('A'); for (var i = 0; i < aelements.length; i++) { var a = aelements[i].href; var slideID = a.match('\#slide[0-9]{1,2}'); if ((slideID) && (slideID[0].slice(0,1) == '#')) { var dest = findSlide(slideID[0].slice(1)); if (dest != null) { if (aelements[i].addEventListener) { aelements[i].addEventListener("click", new Function("e", "if (document.getElementById('slideProj').disabled) return;" + "go("+dest+" - snum); " + "if (e.preventDefault) e.preventDefault();"), true); } else if (aelements[i].attachEvent) { aelements[i].attachEvent("onclick", new Function("", "if (document.getElementById('slideProj').disabled) return;" + "go("+dest+" - snum); " + "event.returnValue = false;")); } } } } } function externalLinks() { if (!document.getElementsByTagName) return; var anchors = document.getElementsByTagName('a'); for (var i=0; i' + '