1 /****************************************************************************
2 ** $Id: richtext.cpp,v 1.9 2008/10/07 21:19:07 smolik Exp $
4 ** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
6 ** This file is part of an example program for Qt. This example
7 ** program may be used, distributed and modified without limitation.
9 *****************************************************************************/
12 #include <qapplication.h>
16 static const char* publisherExamples[] = {
17 "<b>Publisher Example 1:</b><br>"
20 "<pre>ORTEInit();<br>"
21 "d=<b>ORTEDomainAppCreate</b>(ORTE_DEFAULT_DOMAIN,NULL,NULL,ORTE_FALSE);<br>"
22 "<b>ORTETypeRegisterAdd</b>(d,\"HelloMsg\",NULL,NULL,NULL,64);<br>"
23 "NTPTIME_BUILD(persistence,3);<br>"
24 "p=<b>ORTEPublicationCreate</b>(<br>"
26 " \"Example HelloMsg\", /* Topic */<br>"
27 " \"HelloMsg\", /* Type */<br>"
28 " &instance2Send, /* Instance */<br>"
29 " &persistence, /* Persistance */<br>"
30 " 1, /* Strength */<br>"
35 "<b>Example 2:</b><br>"
37 "<big>A well-used door needs no oil on its hinges.<br>"
38 "A swift-flowing steam does not grow stagnant.<br>"
39 "Neither sound nor thoughts can travel through a vacuum.<br>"
40 "Software rots if not used.<br><br>"
41 "These are great mysteries.</big><br><br>"
42 "<center><i>-- Geoffrey James, \"The Tao of Programming\"</i></center>",
47 static const char* subscriberExamples[] = {
48 "<b>Subscriber Example 1:</b><br>"
51 "<pre>ORTEInit();<br>"
52 "d=<b>ORTEDomainAppCreate</b>(ORTE_DEFAULT_DOMAIN,NULL,NULL,ORTE_FALSE);<br>"
53 "<b>ORTETypeRegisterAdd</b>(d,\"HelloMsg\",NULL,NULL,NULL,64);<br>"
54 "NTPTIME_BUILD(persistence,3);<br>"
55 "s=<b>ORTESubscriptionCreate</b>(<br>"
59 " \"Example HelloMsg\", /* Topic */<br>"
60 " \"HelloMsg\", /* Type */<br>"
61 " &instance2Recv, /* Instance */<br>"
62 " &deadline, /* Deadline */<br>"
63 " &minimumSeparation, /* Minimum Separation */<br>"
64 " recvCallBack, /* CallBack function */<br>"
66 " IPADDRESS_INVALID);<br><br>"
67 "void <b>recvCallBack</b>(const ORTERecvInfo *info,<br>"
68 " void *vinstance, void *recvCallBackParam) {<br>"
69 " char *instance=(char*)vinstance;<br><br>"
70 " switch (info->status) {<br>"
72 " printf(\"%s\",instance);<br>"
75 " printf(\"deadline occurred\");<br>"
80 "<b>Example 2:</b><br>"
82 "<big>A well-used door needs no oil on its hinges.<br>"
83 "A swift-flowing steam does not grow stagnant.<br>"
84 "Neither sound nor thoughts can travel through a vacuum.<br>"
85 "Software rots if not used.<br><br>"
86 "These are great mysteries.</big><br><br>"
87 "<center><i>-- Geoffrey James, \"The Tao of Programming\"</i></center>",
93 MyRichText::MyRichText( QWidget *parent, Qt::WindowFlags f)
96 QVBoxLayout *vboxLayout;
99 vboxLayout = new QVBoxLayout(this);
100 vboxLayout->setSpacing(6);
101 vboxLayout->setMargin(11);
103 view = new QTextBrowser();
104 view->setMinimumSize( 700, 450 );
106 vboxLayout->addWidget(view);
108 bClose = new QPushButton( "&Close");
109 bPrev = new QPushButton( "<< &Prev");
110 bPrev->setEnabled( FALSE );
111 bNext = new QPushButton( "&Next >>");
113 buttons = new QHBoxLayout();
114 buttons->setMargin( 5 );
115 buttons->addWidget(bClose);
116 buttons->addWidget(bPrev);
117 buttons->addWidget(bNext);
119 vboxLayout->addLayout(buttons);
121 connect( bClose, SIGNAL(clicked()), this, SLOT(close()) );
122 connect( bPrev, SIGNAL( clicked() ), this, SLOT( prev() ) );
123 connect( bNext, SIGNAL( clicked() ), this, SLOT( next() ) );
127 void MyRichText::setTextPublisher()
130 sayings=publisherExamples;
131 view->setText(sayings[0]);
135 void MyRichText::setTextSubscriber()
138 sayings=subscriberExamples;
139 view->setText(sayings[0]);
142 void MyRichText::prev()
149 view->setText( sayings[num] );
152 bPrev->setEnabled( FALSE );
154 bNext->setEnabled( TRUE );
157 void MyRichText::next()
159 if ( !sayings[++num] )
162 view->setText( sayings[num] );
164 if ( !sayings[num + 1] )
165 bNext->setEnabled( FALSE );
167 bPrev->setEnabled( TRUE );