// ==================================================== [Elc:01] =======
// ==================================================== ======== =======
//
//  Ubit Changes
//  elc@enst.fr
//
// ==================================================== ======== =======
// ==================================================== ======== =======


=== NOTES (pour prochaines versions) ===================================

-- modifier configure pour XPM et UNGIF
-- manque tables multilines et pbm uhflex() uvflex() avec cells
-- gerer movetext quand on edite une UStr et delete pending
-- bug partiel enable 
-- faudrait un UConfig pour regrouper tous les trucs lies aux fontes,
   couleurs, messages d'erreur, etc. (d'ailleurs att. aux fonts
   qui sont != suivant Linux, Solaris, etc.)
-- TRANSP: rajouter VisualInfo pour eviter d'avoir a recalculer
   a chaque fois dans blend dans uunatima.cc et
-- ~UWinGraph/~UNatWin probablement FAUX :
    a) on risque de detruire plusieurs fois la meme XWindow car leur
    destruction est recursive (cas des Incrust, surtout si externe!)
    b) est-ce qu'on detruit vraiment les sous-dialogs ?   
rmqs:
-- choses a faire sur l incrustation
-- idee des menus+dialogs  a la WindowMaker, etc.
-- notion de "virtual windows" (tantot soft, tantot hard)
-- meme chose virtual box a la ugroup versus ubox ==> pour les balises, 
   les styles et le partage d'elems et de  props (quasiment des templates)

reste a faire:
-- instabilite edit avec texte + delete pending
-- BUG menus/dialogs qui ne changent pas de taille si add/remove
-- creation/destruction fenetres sans Xt, virer XtContext, timers, inputs...
-- BUG avec graphicsexpose
-- BUG onChildrenEvents (voir lensmap)
-- transptool plante qd on scrolle
-- NVLEE version optimisee de locateSource a mettre au point
   + rajouter groupes sensitifs et shapes
   + mettre a jour champ TRANSP dans locateSource pour apha transpwin 
   + et penser a recopier le backgroup correctement si en plus elles 
     ont une shape ou un none backgd

=== CORRECTIONS =========================================================
=== CORRECTIONS =========================================================
=== CORRECTIONS =========================================================


!!! ATT DEBUG: modes: xgrab et softwin/hardwin !!!

!!! A TESTER AVEC RESIZED FLOATING (lrobert) !!!!!
!!! vreng: virer XDisplayInit
rajouter events pour show / resize and allXEvents


*** version b1.11 [beta1:nov]

-- nouvelle revision de update(layout) afin d'optmiser l'affichage
   (tres long dans dans la vers preced pour layout car on recalculait
   puis reaffichait tout a partir du 1er layer de la fenetre)
   Desormais on tente de ne remettre a jour qu'a partir de firstLayoutView,
   comme dans les versions <= 1.9  mais de maniere nettement plus sure

-- ULint et synchro UStr <-> UInt

-- nettoyage UAppli et UNatAppli pour virer Xt et protos lies a Xt
   qq methodes disparaissent (cf vreng)


*** version b1.10.2 [beta1:oct]

-- revision et reorganisation des demos/exemples

-- revision des ucall
   * mieux programmes, ils permettent maintenant que les methodes
     appartiennent aux superclasses des objets auquels elles s'appliquent
     expl:   ucall(obj, &superclass::foo, arg)
     avec:  superclass = une superclasse de la classe de obj

-- revision tres complete de update (avec modif API):
   * evite que les add(), remove(), niquent le layout, qui reste constant
     si la fenetre a ete retaille  par l utilisateur
   * permet le calcul a l avance du layout, par exemple pour determiner
     la taille pour centrer un menu autour du pointer (method evenIfHidden())

-- revision UWin avec partie privee dans uwinImpl.hh
   * desormais UWin pointe sur UHardwinImpl ou USoftwinImpl
   * ceci permet une forte independance extrene par rapport a la realisation
     effective (tantot soft ou hardwin)
   * par ailleurs, mise au point des softwins, qui semblent bien marcher
   * de meme revision des UIncrust, en particulier au niveau des coords
     qui deconnaient sec (n'etaient pas gere pareil pour layout et events!)
     desormais, les coords des UIncrust sont comme celles des autres UBox
     et gerees de la meme facon. 
   * de plus correction des Expose qui etaient perdus (cf. gestion events)

-- revision mainLoop, gestion evenements, utilisation de Xt
   * la nouvelle mainLoop se passe presque entierement de Xt
     et possede son propre mecanisme de dispatching
   * de meme, la plupart des fct. de uunat.cc (move, resize, etc) se passent
     desormais de Xt
   * toutes les hardwins existantes sont stockees dans une liste du UNatDisp
   * ceci permet aussi de corriger un bug d'affichage que l'on avait avce
     les UIncrust (les Expose etaient perdus par Xt)
   * par la meme occasion, la fct UAppli::quit est implementee correctement

-- revision udelete/remove/clean et AUTODEL
   * udelete et remove ont des comportement plus coherents
   * mode AUTODEL change par methode autodel()
   * clean() (detach de tous les lines) appele par destructeurs

*** version b1.10.0 [beta1:oct]

-- correction bug mdrag / mrelease apres mdrag :
   a) coords etaient incorrectes avec mdrag si plusieurs wins (vreng) car
      les coords des events sont relatives aux fenetres sur lesquelles se
      trouve la souris dans le mode de XGrabPointer qui est employe
   b) release events perdus (vreng) apres un mdrag si le mpress a ete fait
      dans un browsing group (typiquement un menu) et qu'on en est sorti
      entre temps.

-- correction bug initialisation des couleurs :
   du a un equals errone dans le cas ou les couleurs n'etaient pas allouees

-- UWin::setSoftwinMode marche, exple avec softwin.cc

-- modes: ajout de CMOdes::GROUP en vue du polymorphisme interne.
   maj. des UView.cc et consorts en vue de cet objectif.


*** version b1.9.0 [beta1:sept]

-- mise au point border actif pour les Dialogs virtuels
   ==> entres autres: introduction fct init() pour ttes les bricks

-- suppression cannotDelete et consorts par autodel() plus coherent
   et modfs ad hoc dans code (voir ubrick.hh et uctrl.hh)

-- ajout XGrabPointer avec Motion pour recuperer les move pointer
   en dehors de la window pendant les grabs

-- correction titres de UWin: on evite de les mettre a jour n+1 fois
   en notifiant X a chaque show des windows uniquement

-- ajout des members templates getTypedChild et getTypedChildCount
   dans ubox.hh

*** version b1.8.0 [beta1:aout]

-- grosse modif: vitual UWin : peut etre softwin ou hardwin
   en cours de mise au point 
   serieuse revision du layout pour mieux gerer les floating et les softwins
   ATTENTION: il faut SOFTWIN => FLOATING

-- correct. big bug avec les UPos et autres softwin dans setCoord
   (les coords etaient repetitivement incrementees dans setCoords
   en mode search, d'ou valeurs incoherentes) 
   => nouveau mode: UView::OBSOLETE_COORDS pour distinguer les cas

-- correct. des pixmaps qui bavaient lors des MOVE
   (il n'y avait pas d'intersection de Clip dans le cas des FLOATINGs)

-- correct. bug: UOn::change des UBox : desormais le uevent n'est plus
   null dans le cas d'une modif interactive et reference la UView ou 
   l'edition a eu lieu

-- creation uconfig.hh et UError

-- revison complete de UBox::updateView dans le cas MOVE :
   - on evite de reafficher SOUS les FLOATINGS qunad ils sont opaques
   - on n'utilise de double buffering que si ils sont transparents



*** version b1.7.1 [beta1:july]

!!! lensmap : manque les pixmaps et TRES TRES LENT !!!!!

revision complete UWin et UPswin

CHANGEMENT dans UView::updateWinPaint :
     DEFAULT : u_bool updateAllLayers = false);


*** version b1.7.0 [beta1:july]

!att: modif (incompatible) de l'API UStr pour eviter ambiguites
   --> modifier les applis

implementation de la "selection" (couper/coller du texte)
   (et corrections de l'API UEdit)

correction du bug de: addlist()
  (les initialisations etainet incorrectes dans certains cas)

correction bugs callbacks avec syntaxe:  UOn::xxx / ucall()
   (les fcts n'etainet pas appeles correctement sur certaines condition)
de plus
   revision doc dans ucall.hh
   revision ucloseDialog() 
   + ajout ucloseWin() et UGroup::closeContainingWin
   (permettent de fermer indiferemment des Dialogs ou les Menus)

multi et double click: UOn::m2click, m3click, m4click
   (et correction bug position qui doit etre inchangee)

nouveau filebox avec filtre et dir incremental, possibilite
   d'avoir les attributs, double clic, et fermeture OK.

modif API UFOnt: ajout du calcul en points

correction bugs divers


// ==================================================== ======== =======

*** version b1.6.1

revison API UBackground et UColor et UFont
   -- _b, _i et _bi sont supprimes
   -- nouvelles fcts de gestion des tailles

correction bugs dependances statiques

correction callbacks de uedit et de son parent (n'etaient pas appeles
   qunad on modifiait une UStr)

// ==================================================== ======== =======

*** version b1.6.0 [beta1:june]

filedialog.hh/cc devient filebox.hh/cc
    nouvel objet UFilebox avec nouvelle API
    cet object peut en particulier etre mis DANS LES MENUS

ajout de la DB des variables avec UAppli::getvar, setVar
    prise en compte des vars dans les paths des images

setvar("UIMA_PATH", path) == setImaPath(path)
    et peut etre specifie comme variable du SHELL Unix
    suppression de setBitmapPaths

revision API des UStr (champ update_now)


// ==================================================== ======== =======

*** version b1.5 [beta1:may]

correct UPix/Uma pour compatibilite avec UStr plutot que char*
   et fct. getStatus pour savoir si load file was OK

correct UEdit:UStr: pour que l'edition soit correctement repercutee 
    sur ts les parents
    !att: ce n'est ps vrai pour moveCaret qui ets local a chaque instance
    de UEdit. ce n'est pas fait non plus pour selection ce qui est contestable

les menus supportent l'edition de texte, apparemment sans planter
   (il y avait un pbm avec XSetInputFocus)

corrections bug redrawView ==> updateView 
   (en particulier des pbms de clipping en mode double buf (avec le 
    scroll, etc. qui etaient dues au fait que l'on ne redessinait pas
    tous les plans a cause de PAINT_DAMAGED, incorrect dans ce cas)

selection en double buf (evite flicking)
    (correction bug creation de pixmap si taille nulle qui plantait)
l'edition (insert et del) n'est plus en doublebuf car delai trop long

nouvelles fct de UView: updatePaint pour ne reafficher QUE cette vue
nouvelles fonctionnalites de UGraph::clearRect, clearView
  permttent soit d'afficher un rect opaque soit de raefficher la vue

debut transparence
  modif du wg/ nvlles fct Wingraph::begin() / end() voir softwin

// ==================================================== ======== =======

ubit0.15.4
  -- correction gros bug / destruction (les UViewStyle et UMode
     constants etaient malenconterusement detruits dans certains cas)
  -- correction bug avec UIncrust et placement. nouveau modele
  -- coorection selection texte : becp plus rapide et apparemment
     (enfin!) debuggee
  -- prise en compte des caracteres accentues (et autres bizarres)
  -- correction bug affichage / comptage caracteres speciaux
     (ce qui entrainait des decallages en edition de texte qunad
      il y avait des caracteres bizarres inseres)
  -- revision drawArc/fillArc

ubit0.15.3
  -- nombreuses corrections diverses et variees de pts de detail
  -- ajout de UWin::close() et prise en compte de X Properties
     pour que le WM ferme les windows ou tue l'appli qunad on clique 
     sur bouton close du WM
  -- correction bug du scroll: l'affichage etait incorrect qunad une
     X window etait superposee et cachait une partie des donnees scrollees
  -- revison du code des scrollbars
  -- correction du code des menus (et de grabpointer) pour que ceux-ci
     prennent en compte l'input clavier
  -- modif de l'api de UUpdate et correction en profondeur des 
     paintItem/paintStr qui sont maintenant operationnels (il y avait
     des pbms de reaffichage avec les floating superposes)
     --> corrections dans uuview/uuflow/uubox:update et uubox:redrawView
  -- correction de la prise en compte des clicks souris dans les flowview
     (il y avait un bug qui rendait le pointage approximatif).
     De plus, suppression de l'effet de "double curseur" qui arrivait
     dans certains cas a cause d'un bug.
  -- la selection du texte marche (meme dans les flowview) !
  -- mise en place des pseudoWins et plus generalemnt des 3 layers:
     INBOX, INWIN et INSCREEN (a terminer)

ubit0.15
  -- correction bug UPix en multiviews
  -- revision look and feel scrollbars (avec corr. bugs)
  -- nettoyage des fct de layout
  -- correction bug UStyle->content qui empechait (entre-autre)
     les checkboxes de s'afficher en mode selected
  -- correction bug de UAppli sur init des pixmapPaths
  -- les texts et scrolls ne ferment plus systmatiquement les menus
     un nouveau mode permet d'en decider
  -- creation des UPos qui remplacent avantageusement les floatings
  -- nouvelle syntaxe harmonisee dans ucall.hh :
        UOn::cond / ucall(...) 
  -- fichier uobs.hh qui contient les obsoletes
        (anciens ucalls et floatings)
  -- correction bug d'affichage de uedit()
  -- uflow() definitivement remplace par uflowbox
  ET:
  -- selection du texte (a finir)
  -- UShape et levels (a finir)
  -- nettoyage des ULinks pour preparer PseudoWins

ubit0.14.2
  -- correction bug sur cartes graph. 32 bits (meme les image 24 bits
     y sont crees en 32 bits !)
  -- correction d'un bug de reinitialisation dans uuview.cc qui empechait
     les uflow de s'afficher correctement quand il y avait des utable
  -- modif API UTable:UTcell et cells multicolonnes
  -- fct updateAll de UAppli pour tout remettre a jour

ubit0.14.1
  -- UBackground remplace UBack ou UBackgd des versiosn precedentes
     et permet de specifier si l'image est repetee ou centree
  -- ULi est supprime
  -- UMargin remplace UMargins (avec nvlles methodes)
  -- padding remplace et generalise hmargin et vmargin dans les Styles
  -- creation de UScrollbarStyle qui permet un sousclassage aise
     pour definir de nouveaux types de scrollbars
  -- nettoyage de UStyle et utilisation de 'const' pour eviter erreurs
  -- simulation du dynamic cast avec et sans 'const' (ubrick.hh)
  -- corrections diverses de uweb

ubit0.14.0
  -- fin de la revision UPix, UIma, UNatPix, UNatIma (et UGraph)
     les UPIx ont desormais le bon gout d'etre scalables (pour le zoom)
     de plus UPix et UIma acceptent indifferemment un fichier GIF 
     ou XPM (et aussi des images sous forme de data pour XPM)
  -- correction d'un bug d'affichage avec les UIma (parfois decalees)

  !! ATT: seule la combinaison XPM + UPix donne des images transparentes

  -- serieuse revision des UScrollbars et UPanes: API standardisee
     et les sliders sont desormais bloques et repositionnes qund necessaire     

ubit0.13
  correction du show(false)
  UFlow --> UFlowbox
  UBack --> UBackgd

ubit0.12.4
  revision de UPIx et UIma
  le scaling des UIma marche correctement ! (incroyable non ?)
  correction d'un GROS bug sur la taille eds images  

  !ATT: correction d'une bizarrerie des UFont (concernant la taille
   par defaut voir ufont.hh)
   de plus:  UFont::big --> UFont::large

ubit0.12.3
  petite modif API UColor (d'ailleurs a revoir...)

  !!ATT: les methodes UMenu::show() devient UMenu::open() / UMenu::close()
  desormais UMenu::show() se contente de faire apparaitre ou disparaitre
  le menu comme n'importe quel autre objet sans controle particulier.
  Ceci permet en particulier de subclasser la methode show() normalement
  sans avoir de mauvaise surprise (celle-ci etant d'ailleurs implicitement
  appelee par les methodes specifiques open() et close())

  ajout des background pixmap ("wall paper") via brique: uback() (nom a revoir)
    --> exemple: tags.cc
  + quelques tests interessant avec la "transaprence" des XWindows
    --> exemples: tags.cc, transpwin.cc

  (grosse!)optimisation de l'affichage des UIma et (par la meme occasion)
  correction d'un bug d'affichage des UPix transparents (qui "bavaient")

  correction d'un bug de layout des UIncrust (incrustation de XWindows):
  on peut desormais inclure des objets Ubits standard dedans sans probleme
  de disposition spatiale (et d'interaction)


ubit0.12.2
  creation des classes UIma et UNatIma (attention: le nom changera 
  peut-etre prochainement, la hierarchie aussi)

  ajout du package uungif (extrait du package standard free UNGIF)
  --> la lecture des fichiers GIF est desormais possible depuis Ubit
  (et la lecture seulement!)
  
  gestion des Colormap des UNatIma PseudoColor par reprise 
  et actualisation du code XXL

  correction d'un certain nombre de bugs divers et varies...

ubit0.12.1
  macro NOT_ANSI_CCC dans ucolor.hh et ConfMake
  !!! il faut -lXext avec certaines version de X11R6 !!!
  setSize() --> resize()

  API pour incrustation fenetres externes et creation fenetres X (UIncrust)
  et combinaison Ubit avec appels X directs au lancement (UAppli, UNatAppli)

  Vraie gestion TrueColor en 16, 24 (etc.) bits des widgets
  --> API dans UAppli/UDisp et UNatAppli/UNatDisp

  Gestion de la transparence des XWindows (en specifiant tout betement
  UBgcolor::none, la Window devient "transparente" en ce sens que son
  contenu initial est identique a ce qu'il y avait avant ouverture

ubitO.11.1
  modif API UGraph pour pixmaps (et corrections bugs)
  prise en compte primitive des imafes

  extensions API menus (et correction comportements)
  revision des browseGroups 

  nouveaux types UX_Widget etc. pour identifier (et encapsuler)
  les types X => modifs mineures de UEvent et UAppli

ubit0.11.0
  revision des UOn : suppression des inutiles et correction des comportements
  nouvelle condition:  UOn::mrelax

  modif des pars de toutes les methodes move(), getSize(), etc.:
    x, y sont desormais passes en reference
  meme chose avec UEvent.getItem()

  modif de l'API des menus
  corrections de enable(), select() [maintenant dans UCtrl]

  suppression UKond
  UTimer ne fait plus rien (temporairement)


ubit0.10.2
  ucallfun remplace par ucall generique
  ushow() et .condset() supprimes
  --> a la place: 
      // closes the dialog box when OK is pressed
      + ubutton( UPix::ray + "OK" + ucloseDialog())


ubit0.10.0
  UText --> UTextbox pour eviter ambiguites
  UBox devient horizontal par defaut (au lieu de vertical)
  UPopmenu (menu contextuel) et revision des menus
  UBox::sprintText  remplace UBox::getText et UBox::retrieveAsciiText
     de plus cette fct est recursive si 2e arg = true

ubit0.9.1
  UEvent:  nom des UEvent ids changed et modif de certaines methodes
  getSource renvoit un UGroup*

  revision gestion memoire UEvents / UContext / UFlags :  nombreux bugs 
  corriges (qui provoquainet des plantages aleatoires dans certains cas)

  revision drastique des UMenu. les menus cascadés sont presque OK.

  UWidth/UHeight::keepSize et auroResize (see uprop.hh)
  + revision drastique des propagation de contraintes du layout
  (certains comportements on change, dans certains cas il faut utiliser
   des objets differents ou specifier s'ils sont keepSize ou auroResize)
 
  revision des scrollpanes/scrollbars et correction d'un paquet de bugs

ubit0.9
  UOn::mpress, mrelease, etc...
  UOn::ktype, kpress, krelease
  UFont::plain -> normal, big --> large ;  _b, _i, _bi;
  UVmargin::none, etc supprimes  
  revision gestion memoire des static predefinis et de la destruction
  recursive des objets
  on peut rendre les objets 'undeletable' (en test)
IMPORTANT:
  !!! utiliser udelete() au lieu de la primitive 'delete' !!!


*** RESUME COMPATIBILITE PRECEDENTES VERSIONS ****************************


### Changement de types:

-- boolean et u_boolean  ==>  u_bool
-- uint                  ==>  unsigned int


### Changement de constantes predefinies et de methodes:

-- upix.hh:   UPix dir,file --> folder, ofolder, doc, Wfolder, Wofolder, Wdoc,
              (voir ce fichier)

-- ufont.hh:  nettoyage des noms

-- uctrl.hh:  nettoyage des noms:
              UOn::mpress, mrelease, mmove, mdrag
              --> nouvelle condition:  mrelax
              UOn::ktype, kpress, krelease
              // Drag And Drop (DND)
              UOn::dragStart, dragDone, dropEnter, dropLeave, dropDone,
              UOn::changed --> UOn::change
              UOn::canFocus supprime

-- uevent.hh: nettoyage des noms des eid (event ids) et des methodes
              pressedButton() draggedButton() pressedKeycode()
              remplaces ou supprimes

-- ubox.hh:   UGroup/UBox::add( list ) --> addlist( list )
              add() reste defini mais pour ajouter un seul objet a la fois

-- ugadgets.hh:  UText --> UTextbox et utext() --> utextbox()

-- uappli.hh: UAppli::realize(UWin*) --> UAppli::add(UWin)


### Nouvelles fonctionnalites:

-- umenu.hh:  popup menus (UPopmenu) et menus casacdes (UMenu)

-- ucursor.hh: curseurs souris

-- uctrl.hh:  plein de choses avec event conditions ... (voir ce fichier)

-- uprop.hh:  nvlles csts pour specifier comportement
              pour changement de taille: autoResize, keepSize;
             --> VA ETRE MODIFIE PROCHAINEMENT!!


### Changement de types et de headers:

-- ubit.hh: regroupe desormais l'ESSENTIEL des headers publics de l'API 
            [la plupart des applis ne necessitent plus QUE ce header]

-- ucond.hh & uedit.hh supprimes et inclus dans uctrl.hh

-- fwm_pixmaps.hh supprime. constantes UPix::XXX dans uupix.hh

-- ugadgets.hh remplace ubutton.hh et utext.hh

-- creation de plusieurs fichiers prive uxxxxImpl.hh

 ****************************  ****************************

ubit00.8.5
-- UOn::destroy --> UOn::del appele lors du delete des UGroup et ssclasses
-- nouvelles fonctions pour acces aux parents et enfants:
   UBrick::getParent(int pos)   // -1 means last parent
   UBrick::getParentCount()
   UBrick::getParent*()         // null terminated
   UGroup::getChild(int)        // -1 means last child
   UGroup::getChildCoun()
   UGroup::getChildren()        // null terminated
   UGroup::add(child, int pos = -1)   // -1 means "end of list"
   UGroup::remove(int pos, u_bool delete_singles);  // -1 means last child
   + UOn::add et UOn::remove + etc... (voir ubrick.hh / ubox.hh)

ubit00.8
-- fwm_pixmaps.hh supprime. constantes dans uupix.hh
-- ucond.hh & uedit.hh supprimes et inclus dans uctrl.hh
-- ugroup mis dans ubox.hh
-- modif de la gestion des entrees dans uctrl.cc/hh
   et des constantes dans ucrtrl.hh
-- modif de certaines fct dans uevent.hh (pressedButton() draggedButton() 
   pressedKeycode() remplaces ou supprimes)
-- serieuses corrections avec gestions des comportements
   en particulier:
   -- dragMouse fait un grab logique du pointeur et n'active plus tout
      et n'importe quoi a tort et a travers
   -- mise en place des browseGroups pour gerer le browsing dans les listes
      et les menus
   -- Menubar ameliore (browsing continu sur tous les menus) 
      mais bug avec menus cascades
   -- mise en place d'un Drag and drop simplifie

-- nouveaux pixmaps predefinis UPix:** (voir upix.hh)

dirs src et demos
Makefile general modifie
bug corrige avec CXXFLAGS dans ConfMake ET src/Makefile

ubit00.7
-- ajout des curseurs souris (ucursor.hh)
   -> une serie de curseurs predefinis UCursor::**
-- toolglass avec UOn::flagEvents (exple dans bin/transptool.cc)


ubit00.6

-- types uint et boolean suuprimes
   u_boolean remplace boolean pour eviter pbms de collisions entre lib defs
   si votre programme utilisait le type 'boolean', rajoutez la def: 
	typedef unsigned char boolean;  (ou equivalent)

-- changement de nom des Pixmaps predefinis: voir upix.hh

-- revison des mots cles de uctrl.hh:
   UOn::changed --> UOn::change
   nouveau mode: UMode::repaintOnFocus:
      l'objet reaffiche son contenu qunad UOn::enter/UOn::leave
      SI IL EST SENSIBLE a ces events (autrefois le contenu etait tjrs
      reaffiche qd l'objet etait sensible a ces events, meme qd ca ne servait
      a rien, ce qui provoquait du flicking)
   UMode::popEvents (EX: UMode::passEvents) :
      l'objets renvoie tous les events a son parent

-- acces aux parents: nvlle fcts:
   UBrick::getParent(int pos)
   UBrick::getParentCount()

-- acces aux vues: nvlles fcts:
   UView* UBox::getViewContaining(UEvent*);
   UView* getViewContaining(UView *child_view);
   UView* getViewContainedInParent(UView* parent_view, u_card n);

-- Transparent Tools: revision des UFlags dans les UEvents
   UEvent::addFlag() etc..
   champ 'event->through'
   exeple complet dans: transptool.cc

-- on arrive (lentement!) a lire les images GIF si les commandes 
   giftopnm et ppmtoxpm  sont presentes

-- add(x+y+z) est obsolete pour ajouter une liste d'objets
   ==> addlist(x+y+z) doit etre utilise a la place
   ==> add(x) ne doit plus etre utilise que pour ajouter un seul enfant a la fois


===============================================================================

ubit00.4.4
  obsolete: UAppli(int *argc, char *argv[], char *pixmapPath, char* bitmapPath);
  -> use: setPixmapPaths, setBixmapPaths instead


! Note: risque de plantage en 24 bit a cause des pixmaps !

ubit00.4.2 / 4.3

  remove, removeAll modifies / deleteChildren supprime  

  UGroup
  URadioselect->getBox() ==> getSelected()

  Uon::paint -> repaint + resize
  craetion des UFlags
  UScale

  modif de l'API standard des constructeurs UBox et ss-classes
  modif en interne de la gestion des listes
  UArglist supprime (et transforme en UArgs)

  UBoxView -> UView (UBoxView garde en sysnonym temporarirement)
  uradio -> uradioSelect
  UPropDB -> UContext
  uscrollpane -> uscrollPane	

  UPix: 
  - le fond est transparent car le 2e argunment du constructeur
    est UBgcolor::none // exple: UPix Pix::ray("mini-ray.xpm", UBgcolor::none);
    ATTENTION: ca prend plus de temps a l'affichage !

  - nouvelle API pour charger des data inclues dans des fichiers
  - ATTENTION: upix(UPix&) supprime !!
  - economiser les upix ! (la transparence permet une meilleure reutilisation)

  UGraph: correction bugs avec double buffering
  nettoyage de UProp* et UPropBD


ubit00.4.1

  bug passage transparence a non transparence et vice-versa

 double buffering (mais uniquement pour l'affichage interne avec UWinGraph)
 --> utilise dans le move d'ou nettement plus rapide et... nouveau bugs !

 correction bug UGraph::draw*() avec UPane (debordait sur parties gauche+haute)


ubit00.3.5

  interface native 

  corrections transparence et nvle exple dans dtext.cc

  UFloating ; update() supprime : le faire sur l'objet lui-meme (en precisant
   eventuellement le type d'update a realiser)

  correction de fileDialog et modif de son API

  example de Control menus dans dmenu.cc
  example de selection/coloriage de texte dans dtext.cc

// AFFICHAGE
  algos d'affichages entieremnt revus.
  EN PARTICULIER: 
  -- scroll BCP plus rapide (mais il reste qq bugs...)
  -- affichage du Caret (presque completement) optimise qunad on change sa pos

  !!! il n'est plus necessaire (et meme NUISIBLE) de mettre des UBgcolor::none
  !!! pour ameliorer le scrolling
  !!! DESORMAIS, UBgcolor::none ne doit etre utilise QUE lorsque l'on veut
  !!! vraiment que l'objet soit transparent (d'ailleurs le nom de cette
  !!! constante est appele a changer pour plus de clarte)

  !!attention:
  -- UWin et UBoxView : mofif de l'API : move / where / etc ..
  -- revison de show / move / des constantes de UUpdate etc.


 // This API retrieves the parents of the Brick
  // Usage:
  //   UBox *parent = null;
  //   for (UIndex ix = getParentIndex(); (parent = getParent(ix)); ix++) {
  //       ..whatever..
  //   }

  // !!! ATTENTION !!! MODIF : L API EST MODIFIEE !!!
  // !!! ET getParent ne change PLUS l'index !!!
  //
  virtual UIndex getParentIndex();
  virtual UBox* getParent(const UIndex&);

  UBox : modif des protos de add()
          add(UArglist) => addlist(UArglist)
  egalement: insertAfter
  example dans dtext.cc

  UHalign/UValign ::justify supprime

  UEvent.getItem(ItemData*) / getStr(ItemData*) / pressedKeycode()
  URegion::inter() -> setInter()

  UFontFace => UFontFamily

  ucallfun => ucall (ucallfun garde' tmp pour compat)
  + nouveaux prototypes ucall() pour appeler des fcts sans arg UEvent*


ubit00.2

- nombreux bugs graphiques corriges + optimisations d'affichage
  en particulier avec les vues multiples
  [note: c'est pas termine, il en reste encore un certain nombre a faire]

- correction de l'usage des pixmaps avec XPM :
  on accepte desormais les couleurs approchees

- objets flottant transparents
  les floatings marchent sur le texte
  API legerement modifiee
  ==> voir ufloating

- on peut passer a la ligne dans le texte en faisant Return 
  si:  uedit().enableReturn(true)
  ==> a terme: on creera  textArea et textField

- add() remplace realize() pour les UAppli

- utop(), uleft(), uhcenter() uhflex() etc...
  remplacent (avantageusement) les UValign et UHalign

- la destruction des widgets est recursive et detruit tous les enfants
  (et descendants) qui n'ont pas d'autres parents.
- deleteChildren() fait de meme

- correction gestion des Motion et des Releases ==> effet sur le graphique
  correction du debordement des UGraph sur les objets adjacents
  qunad on scrolle (nb: reste encore un cas d'erreur)

- callbacks generalises (en particulier pour uradio)

- fileDialog serieusement debugge, desormais utilisable ...

- exemple listes et selection avec radio dans ddemo.cc
  voir aussi: dima.cc [images] et dima2.cc [texte]


================================

ubit00.1

- ULayout est supprime et remplace par UViewStyle
  ==> par exemple:  UFlowView::style  remplace ULayout::flow

- UScrollPane
  sans arg: cree DEUX scrollbars
  permer de recuperer ou de specifier les scrollbars
  ! noter que les scrollpane ne marchent pas avec les Items

- on peut aussi utiliser la superclass UPane
  les UPanes / UScrollPanes peuvent etre emboites afin un effet
  implicite un peu particulier (voir 'Panes' dans ddemo.cc)


- UBorder::none pour optimiser l'affichage des images
  (n'affiche pas le fond)
  --> voir dima.cc

- ufileDialog, mais pas fini

- UVAlign/ UHalign:
  flex remplace justify
  center remplace middle (pour UValign)


================================

ubit 99.12

- UFont et UFontFace relatifs

- changement de nom des conditions:
  UC::armed -> UOn::arm, etc.
  UC::on -> UOn::select, UON::unselect
  modification automatique des filtres

- ucallback: ucall, ucallfun

- correction checkbox

- bug corrige avec UOn::select (appelle aussi UOn::action)

