Changeset 2230 in Sophya for trunk/SophyaPI
- Timestamp:
- Oct 25, 2002, 12:41:39 AM (23 years ago)
- Location:
- trunk/SophyaPI/PI
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaPI/PI/pibwdggen.cc
r1827 r2230 434 434 (*it).drw->Detach(this, id); mDrwList.erase(it); 435 435 if (id == mActDrwId) { 436 if (NbDrawers() > 0) mActDrwId = (* mDrwList.end()).id;436 if (NbDrawers() > 0) mActDrwId = (*(mDrwList.end()-1)).id; 437 437 else mActDrwId = -1; 438 438 } -
trunk/SophyaPI/PI/pidrawer.cc
r2164 r2230 38 38 { 39 39 mFgDeleteOnDetach = false; 40 mFgRefreshOnDelete = false; 40 41 mBWdg = NULL; 41 42 mGrUC = NULL; … … 65 66 // Desactivation totale de la fenetre de controle specialise 66 67 // ---> parametre d'appel PIBaseWdgGen* wdg=NULL 67 DeactivateControlWindow(NULL); 68 // DeactivateControlWindow(NULL); 69 // Il semble qu'a ce niveau d'appel du desctructeur, 70 // la table des fonctions virtuelles soit alterees et 71 // la fonction virtuelle DeactivateControlWindow() pointe sur celle 72 // de base - DeactivateControlWindow(NULL) doit donc etre appele 73 // ds le destructeur de la classe derivee 74 // Reza - Octobre 2002 75 76 // Mise a jour eventuelle de la fenetre PIDrwTools 77 bool ckdeact = (PIDrwTools::GetActiveDrawer() == this) ? true : false; 68 78 69 79 list<DrwBWId>::iterator it; 70 80 mDndfg = true; 71 for(it = mBWdgList.begin(); it != mBWdgList.end(); it++) 72 (*it).wdg->RemoveDrawer((*it).id); 81 for(it = mBWdgList.begin(); it != mBWdgList.end(); it++) { 82 (*it).wdg->RemoveDrawer((*it).id); 83 if (mFgRefreshOnDelete) (*it).wdg->Refresh(); 84 } 73 85 if (mGrUC) delete mGrUC; 86 if (ckdeact) PIDrwTools::UpdateActiveDrawer(); 74 87 } 75 88 … … 277 290 // base-widget duquel on se detache 278 291 DeactivateControlWindow(wdg); 292 293 // Mise a jour eventuelle de la fenetre PIDrwTools 294 bool ckdeact = (PIDrwTools::GetActiveDrawer() == this) ? true : false; 279 295 280 296 list<DrwBWId>::iterator it; … … 282 298 if ( ((*it).id == id) && ((*it).wdg == wdg) ) { mBWdgList.erase(it); break; } 283 299 if (mFgDeleteOnDetach && (mBWdgList.size() == 0)) delete this; 300 301 if (ckdeact) PIDrwTools::UpdateActiveDrawer(); 284 302 return; 285 303 } … … 306 324 PIDrawer::DeactivateControlWindow(PIBaseWdgGen* wdg) 307 325 { 308 // Par defaut, il n'y a pas de fenetre de controle specialise 309 // Donc, on ne fait rien 326 // La mise a jour eventuelle de PIDrwTools se fait 327 // directement lors de Detach() ou delete 328 // La methode par defaut ne fait donc rien 310 329 } 311 330 -
trunk/SophyaPI/PI/pidrawer.h
r2184 r2230 17 17 virtual ~PIDrawer(); 18 18 19 // if true -> PIDrawer deleted when detached from last BaseWdg 19 20 inline void SetAutoDeleteOnDetach(bool fg) 20 21 { mFgDeleteOnDetach = fg; } 22 // if true -> PIBaseWdg()->Refresh() when PIDrawer is deleted 23 inline void SetAutoRefreshOnDelete(bool fg) 24 { mFgRefreshOnDelete = fg; } 21 25 22 26 virtual void SetLimits(double xmin, double xmax, double ymin, double ymax, … … 102 106 bool mFgDeleteOnDetach; // si true -> delete drawer on detach 103 107 // from last BaseWdg 104 108 bool mFgRefreshOnDelete; // si true -> On rafraichit le BaseWdg 109 // lors du delete ou Detach 110 105 111 double xMin, xMax, yMin, yMax; // Valeurs en unites user 106 112 int xW0, yW0, xWd, yWd; // Origine/largeur ds la fenetre de trace -
trunk/SophyaPI/PI/pidrwtools.cc
r2138 r2230 89 89 return(mCurBW); 90 90 } 91 92 /* --Methode-- */ 93 PIDrawer* PIDrwTools::GetActiveDrawer() 94 { 95 if ((cwdrwt == NULL) || (mCurBW == NULL) || (cwdrwt->mNDr < 0) ) 96 return(NULL); 97 else return(mCurBW->GetDrawer(cwdrwt->mNDr)); 98 } 99 100 /* --Methode-- */ 101 void PIDrwTools::UpdateActiveDrawer() 102 { 103 if (cwdrwt && cwdrwt->IsVisible()) 104 cwdrwt->UpdateControlsFromDrawer(-9); 105 } 106 91 107 92 108 /* --Methode-- */ -
trunk/SophyaPI/PI/pidrwtools.h
r1921 r2230 24 24 virtual void Show(); 25 25 26 static PIDrwTools* curlutw;27 26 static void ShowPIDrwTools(); 28 27 static void ShowPIDrwTools(PIBaseWdgGen* cbw); … … 30 29 static void SetCurrentBaseWdg(PIBaseWdgGen* cbw); 31 30 static PIBaseWdgGen* GetCurrentBaseWdg(); 31 static PIDrawer* GetActiveDrawer(); 32 static void UpdateActiveDrawer(); 32 33 33 34 protected: -
trunk/SophyaPI/PI/piversion.h
r2138 r2230 2 2 #define PIVERSION_H_SEEN 3 3 4 #define PI_VERSIONNUMBER 3.8 04 #define PI_VERSIONNUMBER 3.83 5 5 6 6 #endif
Note:
See TracChangeset
for help on using the changeset viewer.