source: Sophya/trunk/SophyaPI/PI/pibwdgx.h@ 52

Last change on this file since 52 was 52, checked in by ansari, 28 years ago

Nouvelles fonctionalites pour le PIBaseWdg (non implemente mac)
Classe PIDrawer, traceur en coordonnes user, pouvant etre attaches a
tout PIBaseWdg. Optimisation trace (Backing-store en X, Trace de
zones a rafraichir pour les ScDrawer, ...)
Nouveau classe de trace de points a partir de NTuples
Reza 08/08/97

File size: 3.7 KB
RevLine 
[2]1#ifndef PIBWDGX_H_SEEN
2#define PIBWDGX_H_SEEN
3
4#include "pisysdep.h"
5#include "pibwdggen.h"
6
7
8class PIBaseWdgX : public PIBaseWdgGen
9{
10
11public:
12// Les methodes ...
13
14 PIBaseWdgX(PIContainerGen *par, char *nom,
15 int sx=10, int sy=10, int px=0, int py=0);
16 virtual ~PIBaseWdgX();
17
[52]18 virtual void FinishCreate(); // appele par la fenetre mere, apres XtRealize()
[2]19
20// Activation des evenements
21 virtual void ActivatePtrCross();
22 virtual void ActivateButton(int bid);
23 virtual void ActivateMove(int bid);
24 virtual void ActivateKeyboard();
25
26// Trace graphiques
[52]27 virtual void EraseWindow(int x0=0, int y0=0, int dx=0, int dy=0);
[2]28 virtual void DrawString(int x, int y, char* s, int pos = 0);
29 virtual void DrawLine(int x1, int y1, int x2, int y2);
30 virtual void DrawBox(int x0, int y0, int dx, int dy);
31 virtual void DrawFBox(int x0, int y0, int dx, int dy);
32 virtual void DrawCircle(int x0, int y0, int r);
33 virtual void DrawFCircle(int x0, int y0, int r);
[11]34 virtual void DrawPolygon(int *x, int *y, int n);
35 virtual void DrawFPolygon(int *x, int *y, int n);
36 virtual void DrawMarker(int x0, int y0);
37 virtual void DrawMarkers(int *x, int *y, int n);
[52]38 virtual void DrawPixmap(int x, int y, unsigned char *pix,
39 int sx, int sy, PIColorMap* cmap);
[2]40
[9]41 virtual int CalcStringWidth(char const* s);
42
[11]43// Modifications attributs graphiques
[2]44 virtual void SelForeground(PIColors col=PI_Black);
45 virtual void SelBackground(PIColors col=PI_White);
[11]46 virtual void SelGOMode(PIGOMode mod=PI_GOCopy);
[2]47 virtual void SelFont(PIFontSize sz=PI_NormalSizeFont,
48 PIFontAtt att=PI_RomanFont);
[8]49 virtual void SelFontSzPt(int npt=12, PIFontAtt att=PI_RomanFont);
[2]50 virtual void SelLine(PILineAtt att=PI_NormalLine);
[11]51 virtual void SelPointerShape(PIPointer ptr=PI_ArrowPointer);
52 virtual void SelMarker(int msz, PIMarker mrk=PI_DotMarker);
[2]53
[52]54// Selection de zone de trace (clip)
55 virtual void SetClipRectangle(int x0, int y0, int dx, int dy);
56 virtual void ClearClipRectangle();
[2]57
[11]58// Acces aux attributs graphiques
59 virtual PIColors GetForeground();
60 virtual PIColors GetBackground();
61 virtual PIGOMode GetGOMode();
62 virtual PIFontAtt GetFontAtt();
63 virtual int GetFontSize();
64 virtual PILineAtt GetLineAtt();
65 virtual PIPointer GetPointerShape();
66 virtual PIMarker GetMarker();
67 virtual int GetMarkerSize();
[52]68 virtual int GetFontHeight(int& asc, int& desc);
[11]69
[52]70// Sauvegarde des attributs graphiques
71 virtual void SaveGraphicAtt();
72
[11]73// Fonction qui doit etre appelee pour rafraichir (retracer) tout
[2]74 virtual void Refresh();
75
76// Traitement des evenements
77 virtual void Resize();
78 virtual void Draw();
79 virtual void Draw(int x0, int y0, int dx, int dy);
80
81 virtual void Enter();
82 virtual void Leave();
83 virtual void But1Press(int x, int y);
84 virtual void But1Release(int x, int y);
85 virtual void But2Press(int x, int y);
86 virtual void But2Release(int x, int y);
87 virtual void But3Press(int x, int y);
88 virtual void But3Release(int x, int y);
89 virtual void Ptr1Move(int x, int y);
90 virtual void Ptr2Move(int x, int y);
91 virtual void Ptr3Move(int x, int y);
92 virtual void Keyboard(int key, PIKeyModifier kmod);
93
94 inline GC DefGC() { return mDefGC; }
95
96protected:
[52]97
[2]98 void Init();
[8]99 void SelectFont(int isz, int jat);
[2]100
101 GC mDefGC;
[11]102 PIColors mFCol, mBCol;
103 PIGOMode mGOm;
104 PIPointer mPtrS;
[8]105 PIFontAtt mFAtt;
[11]106 PILineAtt mLAtt;
[8]107 int mFSize;
[9]108 XFontStruct *mFSt;
[11]109 PIMarker mMrk;
110 int mMrkSz;
[2]111};
112
113typedef PIBaseWdgX PIBaseWdg;
114
115#endif /* PIBWDGX_H_SEEN */
Note: See TracBrowser for help on using the repository browser.