source: Sophya/branches/EA_Juin98/SophyaPI/PI/piapplgen.cc@ 1036

Last change on this file since 1036 was 106, checked in by ansari, 27 years ago

1/ Optimisation LUT et P2DArrAdapter 2/ CheckItem et PullDownMenu comme
elements des Menus, 3/Possibilite de rajouter et de supprimer des Menus
dans le MenuBar
4/ Possibilite de rendre non-sensible (Sensitive/Unsensitive) les PIWdg
5/ Debut de commentaires de pistdwdg Reza 12/05/98

File size: 4.4 KB
Line 
1// Classe de base d'objets application pour
2// les programmes graphiques interactives
3//
4// E.Aubourg , R. Ansari 96 - 98
5// LAL (Orsay) / IN2P3-CNRS DAPNIA/SPP (Saclay) / CEA
6
7//++
8// Class PIApplication
9// Lib PI
10// include piapplgen.h
11//
12// Classe de base pour l'objet application. L'objet PIApplication
13// doit être créé avant la création des autres objets de PI.
14// La classe "PIApplication" a implémentation dépendante
15// du systeme utilisé (Mac, XWindow, ...). La classe "PIApplicationGen"
16// est la classe qui définit l'interface, et ne doit pas être instanciée
17// directement (Méthodes virtuelles pures). Les objets instanciés sont
18// de la classes "PIApplication" et le fichier entête correspondant est
19// "PIAPP_H" défini dans "pisysdep.h".
20//--
21//++
22// Links Parents
23// PIMsgHandler
24//--
25//++
26// Titre Constructeur
27//--
28//++
29// PIApplication(int sx=200, int sy=30, int narg=0, char *arg[]=NULL)
30// Constructeur. "sx,sy" est la taille de la fenêtre principale
31// (ou PIContainer) associée à l'application. Des arguments
32// optionnels, par exemple celle de la ligne de commande peuvent
33// être transmis à l'objet PIApplication. Dans le cas d'Unix/XWindow
34// par exemple, les options reconnues par la Xtoolkit peuvent
35// être passées à l'objet application.
36//--
37
38//++
39// Titre Méthodes
40//--
41//++
42// PIContainer* MainWin()
43// Renvoie le pointeur de l'objet "PIContainer" associé à l'application.
44// PIMenubar* Menubar()
45// Renvoie le pointeur de l'objet "PIMenubar" associé à l'application.
46// void AppendMenu(PIPDMenu *pdm)
47// Ajoute le "PIPDMenu *pdm" au Menubar de l'application. Le titre
48// du menu dans le menubar est le nom de l'objet menu.
49// void Run() Stop
50// Démarre, arrête la boucle d'événements.
51//--
52
53
54#include "piapplgen.h"
55
56// Variable qui contient le pointeur de l'application courante
57// permet de recuperer la taille pref pour la fonction globale
58static PIApplicationGen * curapp = NULL;
59
60PIApplicationGen::PIApplicationGen()
61:topcont(NULL), menubar(NULL), mState(0)
62{
63curapp = this;
64}
65
66PIApplicationGen::~PIApplicationGen()
67{}
68
69
70void PIApplicationGen::AppendMenu(PIPDMenu *pdm)
71{
72if (menubar)
73 menubar->AppendMenu(pdm);
74return;
75}
76
77//++
78// void SetReady()
79// Modifie l'état global de l'application - Pssage à l'état normal,
80// prêt à traiter les actions utilisateur.
81// void SetBusy()
82// Passage en mode de calcul - La souris prend la forme de la montre
83// pour la fenêtre principale
84// void SetBlocked()
85// Passge en mode bloqué. La barre de menu devient insensible
86// int GetState()
87// Renvoie l'état global de l'application "(kReadyState, kBusyState, kBlockedState)".
88//--
89void PIApplicationGen::SetReady()
90{
91mState = kReadyState;
92}
93
94void PIApplicationGen::SetBusy()
95{
96mState = kBusyState;
97}
98
99void PIApplicationGen::SetBlocked()
100{
101mState = kBlockedState;
102}
103
104int PIApplicationGen::GetState()
105{
106return mState;
107}
108
109//++
110// Titre Redirection StdOut, StdErr
111// Il est possible de rediriger les flots de sortie
112// standard et d'erreur vers un objet PIConsol.
113//--
114
115//++
116// void RedirectOutStream(PIConsole* cons, unsigned char va= PIVA_Def)
117// Redirige le flot de sortie ("stdout" sous Unix) vers l'objet
118// PIConsole "cons".
119//
120// void RedirectErrStream(PIConsole* cons, unsigned char va= PIVA_Def)
121// Redirige le flot des messages d'erreur ("stderr" sous Unix)
122// vers l'objet PIConsole "cons".
123//--
124
125//++
126// Titre Informations globales
127// Les méthodes suivantes permettent d'acceder aux informations
128// concernant l'écran (tailles, ...). Des fonctions globales sont
129// prévues ( "PIApplicationPrefCompSize()" et "PIApplicationScreenSize()" )
130// afin d'obtenir ces informations sans avoir besoin d'une instance de la
131// classes application.
132//--
133//++
134// void PIApplicationPrefCompSize(int& szx, int& szy)
135// Fonction globale
136// void PrefCompSz(int& szx, int& szy)
137// Renvoie la taille préférée pour les composantes standard. "szx,szy"
138// est la taille (en pixels) pour un champ texte, ou un bouton "(PIText, PIButton)"
139// avec l'étiquette ou un contenu de 6 caractères (Ex: Cancel).
140//
141// void PIApplicationScreenSize()
142// Fonction globale
143// void ScreenSz(int& szx, int& szy)
144// Renvoie la taille en pixels de l'écran
145//
146//--
147
148void PIApplicationPrefCompSize(int& szx, int& szy)
149{
150szx = szy = 10;
151if (curapp) curapp->PrefCompSz(szx, szy);
152return;
153}
154void PIApplicationScreenSize(int& szx, int& szy)
155{
156szx = szy = 500;
157if (curapp) curapp->ScreenSz(szx, szy);
158return;
159}
Note: See TracBrowser for help on using the repository browser.