]> rtime.felk.cvut.cz Git - orte.git/blob - orte/contrib/shape/richtext.cpp
orte 0.3.2 release
[orte.git] / orte / contrib / shape / richtext.cpp
1 /****************************************************************************
2 ** $Id: richtext.cpp,v 1.9 2008/10/07 21:19:07 smolik Exp $
3 **
4 ** Copyright (C) 1992-2000 Trolltech AS.  All rights reserved.
5 **
6 ** This file is part of an example program for Qt.  This example
7 ** program may be used, distributed and modified without limitation.
8 **
9 *****************************************************************************/
10
11 #include <qbrush.h>
12 #include <qapplication.h>
13
14 #include "richtext.h"
15
16 static const char* publisherExamples[] = {
17     "<b>Publisher Example 1:</b><br>"
18     "<hr><br>"
19
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>"
25     "     d,<br>"
26     "     \"Example HelloMsg\",    /* Topic */<br>"
27     "     \"HelloMsg\",            /* Type */<br>"
28     "     &instance2Send,        /* Instance */<br>"
29     "     &persistence,          /* Persistance */<br>"
30     "     1,                     /* Strength */<br>"
31     "     NULL,<br>"
32     "     NULL,<br>"
33     "     NULL);<br></pre>",
34   
35     "<b>Example 2:</b><br>"
36     "<hr><br><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>",
43
44     0
45 };
46
47 static const char* subscriberExamples[] = {
48     "<b>Subscriber Example 1:</b><br>"
49     "<hr><br>"
50
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>"
56     "    d,<br>"
57     "    IMMEDIATE,<br>"
58     "    BEST_EFFORTS,<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>"
65     "    NULL,<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>"
71     "    case NEW_DATA:<br>"
72     "      printf(\"%s\",instance);<br>"
73     "      break;<br>"
74     "    case DEADLINE:<br>"
75     "      printf(\"deadline occurred\");<br>"
76     "      break;<br>"
77     "  }<br>"
78     "}<br></pre>",
79
80     "<b>Example 2:</b><br>"
81     "<hr><br><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>",
88
89     0
90 };
91
92
93 MyRichText::MyRichText( QWidget *parent, Qt::WindowFlags f)
94     : QWidget( parent, f)
95 {
96     QVBoxLayout *vboxLayout;
97     QHBoxLayout *buttons;
98
99     vboxLayout = new QVBoxLayout(this);
100     vboxLayout->setSpacing(6);
101     vboxLayout->setMargin(11);
102
103     view = new QTextBrowser();
104     view->setMinimumSize( 700, 450 );
105
106     vboxLayout->addWidget(view);
107
108     bClose = new QPushButton( "&Close");
109     bPrev = new QPushButton( "<< &Prev");
110     bPrev->setEnabled( FALSE );
111     bNext = new QPushButton( "&Next >>");
112
113     buttons = new QHBoxLayout();
114     buttons->setMargin( 5 );
115     buttons->addWidget(bClose);
116     buttons->addWidget(bPrev);
117     buttons->addWidget(bNext);
118
119     vboxLayout->addLayout(buttons);
120
121     connect( bClose, SIGNAL(clicked()), this, SLOT(close()) );
122     connect( bPrev, SIGNAL( clicked() ), this, SLOT( prev() ) );
123     connect( bNext, SIGNAL( clicked() ), this, SLOT( next() ) );
124
125 }
126
127 void MyRichText::setTextPublisher()
128 {
129     num = 0;
130     sayings=publisherExamples;
131     view->setText(sayings[0]);
132 }
133
134
135 void MyRichText::setTextSubscriber()
136 {
137     num = 0;
138     sayings=subscriberExamples;
139     view->setText(sayings[0]);
140 }
141
142 void MyRichText::prev()
143 {
144     if ( num <= 0 )
145         return;
146
147     num--;
148
149     view->setText( sayings[num] );
150
151     if ( num == 0 )
152         bPrev->setEnabled( FALSE );
153
154     bNext->setEnabled( TRUE );
155 }
156
157 void MyRichText::next()
158 {
159     if ( !sayings[++num] )
160         return;
161
162     view->setText( sayings[num] );
163
164     if ( !sayings[num + 1] )
165         bNext->setEnabled( FALSE );
166
167     bPrev->setEnabled( TRUE );
168 }
169
170
171
172
173