Commit Graph

497 Commits

Author SHA1 Message Date
Christophe Alexandre 996c1d1c93 compile the X11 QApplication constructor only on X11 platforms 2009-01-22 11:37:42 +00:00
Jean-Paul Chaput f62dcb53b6 * ./hurricane/src/hviewer :
- Bug: do not redraw the grid with each paintEvent(). This is a terrific
        cpu eater. Grid is now drawn into the same plane as the layers.
2009-01-21 16:42:58 +00:00
Jean-Paul Chaput 259ae70943 * ./coriolis/src/crlcore/src/ccore/Banner.cpp
./coriolis/src/crlcore/src/ccore/crlcore/Banner.h
   - Moved "CBanner" to "Banner", cleaned up, relooked, renamed functions, reorganised. 

 * ./coriolis/src/crlcore/src/ccore/ToolEngine.cpp
   ./coriolis/src/crlcore/src/ccore/crlcore/ToolEngine.h
   ./coriolis/src/crlcore/src/ccore/crlcore/ToolEngines.h
   - Renamed CEngine to ToolEngine, cleaned up, relooked. All fonctions as static
       members.

 * ./coriolis/src/crlcore/src/ccore/Memory.cpp
   ./coriolis/src/crlcore/src/ccore/crlcore/Memory.h
   - Renamed CMemory to Memory (as for Timer), minimal cleanup.

 * ./coriolis/src/crlcore/src/ccore/crlcore/*.h
   - Change anti-double inclusion constants from __XX_H__ to __CRL_XX_H__
       (that is: include namespace) to avoid potential constant clashes with
       other pieces of software.

 * ./coriolis/src/crlcore/src/ccore/Utilities.cpp
   ./coriolis/src/crlcore/src/ccore/crlcore/Utilities.h
   - Finish porting of all features from CUtils. Simplificated mstream using
       member templates. Speedup mstream by using static_cast instead of
       dynamic_cast.

 * ./coriolis/src/crlcore/src/ccore/Environment.cpp
   - Now read CORIOLIS_TOP from UNIX environment instead of hard-coded
       directory (to my personnal installation...). See new method
       "loadFromShell()", needs to be extended to all other variables.

 _____________________________________________________________________________


 * ./hurricane/src/hurricane/BasicLayer.{h,cpp}
   - Suppress all graphics related members from Layer.
   - Adding realName member for symbolic to real transformation.

 * ./hurricane/src/hviewer/CellWidget.cpp
   Bug: Now uses display threshold from Graphics (DisplayStyle) instead
     of layer. Now layers appears/diseapears while zooming/unzooming.

 * ./coriolis/src/crlcore :
   - Separating clearly symbolic technology form real technology.
   - Various file renaming.

 _____________________________________________________________________________


 * ./hurricane/src :
   - Complete include re-organisation.
       include/hurricane/*.h            : kernel.
       include/hurricane/viewer/*.h     : hviewer.
       include/hurricane/inspector/*.h  : hinspector.
     Includes have been moved into subdirectories of .cpp files (as in
       crlcore).
   - Now you must include files like this :
       #include  <hurricane/Layer.h>
       #include  <hurricane/viewer/CellViewer.h>
       #include  <hurricane/inspector/HInspector.h>  
   - Suppressed viewer specific include path in FindHURRICANE.cmake.
   - Re-enabled documentation, with dot disabled as it seems to slow down
      doxygen.

 * ./crlcore/src/crlcore :
   - Adapted to new Hurricane include scheme. Corrected bugs in it's own
       include files (noticeably "Utilities.h").

 _____________________________________________________________________________


 * ./hurricane/doc/hurricane :
   - Added (empty) directories "html" & "latex". Those directories are
       created by doxygen, but as they are used in the CMakeList.txt, they
       must be present even before the fisrt run of cmake (otherwise cmake
       choke on them).
   - Doxygen sets to only generate html & pdf (through LaTeX) documentation.
   - All ".dox" files corrected to suit the new function members naming
       scheme (some work may remains in code examples).

 _____________________________________________________________________________


 * ./hurricane/doc/hurricane/src/hurricane/Layer.{h.cpp}
   ./hurricane/doc/hurricane/src/hurricane/BasicLayer.{h.cpp}
   - Changed "Type" to "Material" to fit better the OpenAccess semantic.
       Introduce Material meanings : pWell, nWell, pImplant, nImplant
       active, metal, cut, obstacle & other.

 * ./coriolis/src/crlcore :
   - Switched to the generic layer model. Updated technology XML configuration
       files, technology parser & AP parser/driver.
   - Note that the representation of transistors visually changes as it's now
       modelled with Implant + Active.

 _____________________________________________________________________________


 * ./hurricane/src/hurricane :
   - CompositeLayer replaced by 5 kind of symbolic layers :
       RegularLayer     (1 BasicLayer)
       DiffusionLayer   (2 or 3 BasicLayers: active+implant,well)
       TransistorLayer  (3 or 4 BasicLayers: poly+active+implant,well)
       ContactLayer     (4 or 5 BasicLayers: metal+cut+active+implant,well)
       ViaLayer         (3 BasicLayers: metal0+cut0+metal1)
   - To better follow the OpenAccess semantic, the "obstacle" Material type
       is renommed to "blockage".
   - NB: doxygen documentation is not up-to-date and issue warnings.

 * ./coriolis/src/crlcore :
   - Migrate from CompositeLayer to the various SymbolicLayers.
   - Symbolic rules are now closer to the reality so that a Cell displayed
       with Hurricane should look identical to the Graal one.
   - Complete rewrite of the AP parser. Much simplificated, do not try to
       merge/articulates segments. This ensure a true rendering of the
       Cell. Especially do not create contact to anchor diffusion segments,
       which leads to very strange randering (DRC error as well).

 _____________________________________________________________________________


 * ./hurricane :
   - Unit evolution to allow Symbolic (lamda) and Real (grid founder) mixing.
       All functions related to Unit translations are now grouped under
       the "DbU" class (another tribute to OpenAccess). "DbU" contains
       only static attributes (constants) and methods. Unit itself becomes
       a typedef inside this class, hence the file renaming from Unit.{h,cpp}
       to DbU.{h.cpp}. Have to replace all instances of "Unit" by "DbU::Unit".
   - Doc will be updated shortly.

 _____________________________________________________________________________


 * ./coriolis/src/crlcore :
   - New AP parser : simplificated, no longer try to re-articulates segments.
       More accurate representation of standart cell innards.
   - More accurate symbolic extentions rules.
   - Propagated changes from Hurricane about Unit/DbU.

 _____________________________________________________________________________


 * ./hurricane/src :
   - Rename "pyext" to "isobar".


 _____________________________________________________________________________


 * ./hurricane/doc/hurricane :
   - Documentation of DbU, replacing documentation of Unit.

 * ./hurricane/src/hurricane/hurricane/DBo.h :
   - Property set is now a mutable member, allowing const DBo to changes
       their properties. Strange side effect on SlotAdapter in which we
       need to declare two separate templates, one for const type and
       another for non-const type.
   - _getTypeName() defined to prevents noisy error message when a
       derived class (from DBo) do not want to implement support for
       the inspector.


 _____________________________________________________________________________


 Derrick Release !!

 * ./hurricane/src
   - Simplification of the Inspector internal mechanism. Simple, but with
       more templates, means a slower compilation.
   - The DbU::Unit problem : DbU::Unit are only typedef over long type,
       so we cannot create a specific overload for them. Uses "getValueRecord()"
       instead of "getRecord()"
   - For HInspectorWidget add a "getClone()" method. Also add a global
       object counter (for Record too) to track down memory leaks.
   - Big rewrite of the HInspectorWidget : now do not leak memory like hell,
       and only kept allocated the current Record and not the full stack
       of them (instead, we stack Slots which are ligthweigh objects).
   - Rename of "real" unit to "grid" unit.
   - New conversion function "getPhysicalsPerGrid()" and associated
       mechanism.

 * ./coriolis/src/crlcore :
   - Synchronise with the Hurricane modifications.


 _____________________________________________________________________________


 * ./hurricane/src/hurricane/DbU.{h,cpp} :
   - Add forgotten converter function physicalToGrid(), physical units to
       founder grid units.

 * ./hurricane/src/hinspector :
   - Added history support, and ability to move through the history stack.
   - Fork support : by typing 'O' (capitalized 'o' letter)  you can open
       a new inspector on the current record.


 _____________________________________________________________________________


 * ./hurricane/src/hinspector :cla
   - No more extra arguments in HInspectorWidget & RecordModel constructors.
       Valid values have to be sets through setRootRecord() & setSlot().
   - Key for forking sub-inspector is now *minus* 'o'.


 _____________________________________________________________________________


 * ./hurricane/src/hviewer :
   - Bug: very tricky one. Do not emit "layoutAboutToChange()" signal
       after destroying the Record used by the RecordModel but before
       setting a new one and not setting the _record field to NULL.
       Now setRootRecord() should work more than once.


 _____________________________________________________________________________


 * ./hurricane/src/hviewer :
   - API : in CellWidget & CellViewer constructors now only takes the
       parent QWidget.
   - Renaming coordinates translation functions for more clarity.
   - Adding a StatusBar showing mouse coordinates.


 _____________________________________________________________________________


 * ./hurricane/src/hviewer :
   - Grid & Spot support (adjusted display threshold).
   - Added new copyToScreen() functions for _drawingBuffer to screen refreshment
       or partial copy (useful for Spot).


 _____________________________________________________________________________


 * ./hurricane/src/hviewer :
   - New Widget policy : a widget do not generate other widget : applied to
       CellWidget which no longer supplies Palette & StatusBar.
         API note: to associate a HPalette to a CellWidget (that is be able
       to select layer) you have to call "bindToPalette()" on the CellWidget.
   - Hurricane reusable widget names prefixed by 'H' : HMousePosition and
       HPalette.


 _____________________________________________________________________________
   

 * ./hurricane/src/hviewer :
   - New feature : support for highlighted selection with decent refresh time.
       To active selection mode, use the 's' key or the "View" menu.
   - New feature : HNetlist to browse a Cell's Netlist. HNetlist can be used
       with any NetInformations derived class, allowing the user to enrich
       the HNetlist displayed fields. For an example, have a look at
       SimpleNetlistWidget.
   - Added proper licence header to all file.


 _____________________________________________________________________________


 * ./hurricane/src/hurricane :
   - New feature : geometrical Query with callback fonctions "a la" OpenAccess.

 * ./hurricane/src/hviewer :
   - Uses Query to draw display.
   - Bug : when drawing segments as lines (width inferior to 1 pixel)
       uses an alternate Pen which is one pixel wide and SolidLine styled,
       avoiding strange orange lines... Mechanism implemented in sub-class
       DrawingPlanes.
   - Make selection always visible regardless the zoom level.
   - CellWidget names it's most importants childs QWidget (mostly menus)
       for later retrieval in customized sub-classes.

 * ./coriolis/src/crlcore/src/cyclop :
   - Created a simple derived class from CellViewer. Example of customisation
       of CellWidget.


 _____________________________________________________________________________


 * ./hurricane/src/hviewer :
   - Bug : now CellViewer can start with a NULL Cell, note that in this
       case all displacement/zooming function of CellWidget became uneffective.
       (display only a black screen)
   - New widget : HGraphics to select the layout graphic's theme.
   - New widget : HDisplayFilter to select displayed hierarchical levels.
   - Distinguish between Close (one viewer) & Exit (all viewers).
   - Small enhancments of DisplayStyle (Description & darkening).

 * ./coriolis/src/crlcore/src/ccore :
   - Xml display parser takes account of DisplayStyle description & darkening.

 * ./coriolis/src/crlcore/src/cyclop :
   - Enhanced COpenCellDialog : ability to open in a new Viewer.
   - Bug : now Cyclop can start on a NULL Cell.
   - Half Bug : when a Cell is loaded at start, call show() *before* setCell()
       so all internal widget resizing due to the insertion of the toolbar,
       menbar palette ... takes places before the Cell fit. Now the loaded
       cell appears correctly fitted.


 _____________________________________________________________________________


 * ./hurricane/src/hviewer :
   - New feature : Command support. Move command is now implemenented as a
       Command and no longer built into the CellWidget. ZoomCommand implemented.
   - New feature : SelectCommand support along with new HSelection widget to
       browse the current selection. Selection is automatically kept up to
       date.
   - Note : Selection Browser & Netlist Browser pointer in the CellViewer are
       resets to NULL on widget destruction by closing. We do not want to keep
       big widget hiden. The are allocateds on demand.
   - New feature : progessive grid. First display 5x5 then 5x5 + 1x1.


 _____________________________________________________________________________
       

 * ./hurricane/src/hviewer :
   - Bug : default argument to setWeight() sould be QFont::Normal and not "-1".
       Shows in Qt debug mode (catched by an assert).
   - Bug : SelectCommand now keep the Selection check button in sync.
   - Change : Palette doesn't show at start.

 * ./hurricane :
   - Now choice between static and dynamic linking. Note that thoses options are
       mutually exclusives.

 * ./coriolis/src/crlcore :
   - New choice between static and dynamic linking.
   - New feature : XmlParser optional warning when file not found (default is
       to warn).
   - New feature : now read environment from user's optional configuration file :
       ~/.environment.alliance.xml
   - Potential bug : when loading/parsing file, the XmlReader hangs if the opened
       file is a directory, and QFile allows directory opening :-(


 _____________________________________________________________________________


 * ./hurricane/src/viewer :
   - New features : advanced selection widget/commands. Communications between
       CellWidget, HSelectionPopup, HSelection & SelectCommand mostly done
       through signal/slots (better undersdanding of the possibilities).
   - Change : debug menu is hidden by default.
   - Change : in all the QTableView rows are now correctly resized, even when
       filtering is active (new forceRowHeight() slot). I'm pretty sure there's
       a better way to handle this, but I haven't found it for now.
   - Change : small naming normalisation in all those TableView.


 _____________________________________________________________________________


 * ./hurricane/src/viewer :
   - New feature : display instances names (vertical on bottom left corner
       of the AB). New CellWidget capability : drawText(). Small modification
       of styles & display.xml to distinguish between different kind of texts.
       (instances name, master cell names, ...).
   - New feature : do not create color, pen & brush at start in Graphics/
       DisplayStyles. Now for the graphics to be used it must be enabled with
       a call to "Graphics::enable()" *AFTER* allocating the QApplication.

 * ./coriolis/src/crlcore/src/cyclop :
   - New argument "--text" to check pure text mode.


 _____________________________________________________________________________


 * ./hurricane/src/hurricane/Name.h
   ./hurricane/src/hurricane/Name.cpp :
   - New feature : Allocate a static member "_emptyName" which could be used
       to manage effeciently empty Name (for functions returning reference on
       Name, by example).

 * ./hurricane/src/hurricane/Property.h
   ./hurricane/src/hurricane/Property.cpp :
   - Change : Now StandardPrivateProperty & StandardSharedProperty templates
       systematically uses static member for the property's name. This leads
       to suppress the "const Name&" argument when creating a property, and
       the _name member is no longer present in each object instance.
   - Change : Property must now be created/get through static methods :
               StandardPrivateProperty<Value>::get ( DBo* );
               StandardPrivateProperty<Value>::create ( DBo* );
               StandardPrivateProperty<Value>::create ( DBo*, const Value& );
       Note that, as before, the Value type must provide a default constructor
       and a copy constructor.

  * ./hurricane/src/hviewer/DisplayStyle.cpp :
    Bug : early Graphics::enable() no longer makes application crash.

  * ./coriolis/src/crlcore/properties :
    - Complete redesign of properties managment. Individual properties relateds
        to the same concept and DBo* are now grouped together into an
        "ExtensionDatas" which is nested into a specific "Extension" Property.
        The various datas can be accessed through static methods of the Extention
        object. Two Extension have been created :
        a. LefDefExtensionDatas / LefDefExtension (on Cell*) : holds convert
             factors & Ioc orders (if any).
        b. NetExtensionDatas/NetExtension (on Net*) : holds various Port names,
             currently only one Name at the same time is managed.

  * ./coriolis/src/crlcore/lefdef :
    - Change : re-enable and big cleanup of the LEF/DEF parsers drivers. Currently
        only the DEF parser is enabled.

  * ./coriolis/src/crlcore/src/AllianceFramework.cpp :
    - New : Ability to pre-load all cells from a library.
       
  * ./coriolis/src/crlcore/src/cyclop :
    - New : Ability to choose the input format "on the fly".

 _____________________________________________________________________________


 * ./hurricane/src/hurricane/ExtensionSlice.h
   ./hurricane/src/hurricane/ExtensionSlice.cpp
   ./hurricane/src/hurricane/ExtensionGo.h
   ./hurricane/src/hurricane/ExtensionGo.cpp :
   - New : support for user-based Gos & Slices. A normal slice is a couple
      (Layer,QuadTree) while a ExtensionSlice is a couple (Name,Quadtree).
      Note that for efficiency ExtensionSlices also uses a mask bitmap.
        This new feature implies modifications of the Cell QuadTrees and
      the Query callback/class. CellWidget & Palette also updated to allow
      the drawing of thoses new slices.

  * ./coriolis/src/crlcore/src/cyclop/DemoGo.{h,cpp} :
    - Example : how to construct & uses an ExtensionGo (draw a thick red
        box around the Cell's abutment box).

 _____________________________________________________________________________


  * ./hurricane/src/hurricane :
    - New : Mask object to manage masks.
    - New : BasicLayer ordering & connectivity is managed.

 _____________________________________________________________________________


  * ./hurricane/src/hurricane :
    - New : DebugSession for a selective trace activation, based on "symbols",
        that is, void pointers to objects.
    - New : ExtensionGos are now selectables (integrated to the
        Cell_OccurrencesUnder collection). Note that they are manageds as Gos
        and *not* ExtensionGos.
    - New : Bug flavor of Exception (sibling of Error & Warning).

  * ./hurricane/src/hviewer :
    - Change : ExtensionGos are now hidden by default.

  * ./coriolis/src/crlcore :
    - Technology directly avalaible in RoutingGauge.
    - _viaLayers table in RoutingGauge to manage METAL/METAL connexity.
        Can contains NULL in case of non-contiguous metals.
    - Contants are moved into a Constant top-level namespace named
        "Constant"...
    - RoutingLayerGauge no longer checks for BasicLayer (could be
        RegularLayer).

  * ./coriolis/src/nimbus :
    - Uses Constant namespace.

  * ./coriolis/src/knik :
    - Edges are now drawed as true colored edges between two vertexes,
        and not as sides of the GCell.

  * ./coriolis/src/katabatic :
    - Initial portage from Coriolis 1. AutoContacts resizing is still to be
        activated.

  * ./coriolis/src/unicorn :
    - Bug : bad libraries depndencies in CMakeList.txt.
    - Added Katabatic tool.

 _____________________________________________________________________________


  * ./hurricane/src/hurricane :
    - Bug : double deletion of ExtensionSlice, one in Cell and one in
        ExtensionGo::unmaterialize() when the last ExtensionGo is removed.
        Keep the one in unmaterialize.
    - Bug : missing "_preDestroy()" in ExtensionGo (not really a bug but may
        be useful in the future).
    - Modification : begin to uses "ltrace(level)" instead of "trace()".
        Levels affecteds to Hurricane are 0-10 (the lowest).

  * ./coriolis/src/katabatic :
    - New : create a Configuration object to group all that's related to
        configuration (RoutingGauge ...).
    - Finished porting :
      a. - AutoContact resizing.
      b. - Structure stripping to get back to Hurricane.
    - Todo : AutoContact removal from the GCell lists whenever destructed.
        In combination with "engineDelete" to speedup the destruction
        process. Not a priority as we never destruct AutoContacts for now.

 _____________________________________________________________________________


  * ./hurricane/src/hurricane :
    - Bug : memory leak in Query.h. When we do try a levelDown() remove the
        Instance locator that have been created (and is not valid).
    - To trace the numbers of Instances Locator add a counter inside the
        QuadTree. The code is commented but could be useful in case of
        another memory leak...

 _____________________________________________________________________________


  * ./hurricane/src/hviewer :
    - New feature : first try at a more ergonomic interface. The "Controller",
        a simple Tabbed window for managing all settings.
          Reorganize the way things are selected (Nets, Area, single), aglomerated
        selection.
          Use a "logical" progression Netlist -> Selection -> Inspector.
    - In CellWiddget, new Selection managment mecanism to ensure persistent
        Selection across cell modifications.
          New signals/slots to manage Cell modification :
          a. - cellPreModificated() : must be launched *before* the Cell modification
               by the tool about to modify it.
          b. - cellPostModificated() : must be lauched *after* the Cell modification
          This mecanism may be amended to automatically fit with the UpdateSessions.  
    - Cleanup (part 1) : more consistent name for widgets, replace the 'H' prefix by
        a "Widget" suffix. Objects are modified by not filenames yet (due to svn not
        liking file renaming and modications at the same time).
    - Improved support for static building in CMakeList.txt.

 _____________________________________________________________________________


  * ./hurricane/src/hviewer :
    - Bug : InspectorWidget was using Record from Occurrences in the SelectionWidget.
        but those Occurences were created on the fly by the CellWidget/Selectors.
        So, whenever the selection changes the Occurrence may diseapear leaving a
        bad Record in the InspectorWidget (core dump).
          Now, the TabInspector keep a copy of the Inspected occurrence, so it
        can go through any selection change.
          In addition, the InspectorWidget could be passed Occurrence that it keeps
        local copy along with Record*.
    - New Feature : internal, first step toward an extensible ControllerWidget :
        now all Tab are derived classes of ControllerTab.

 _____________________________________________________________________________


  * ./hurricane/src/hviewer :
    - New feature : full uses of SelectionModel in NetlistWidget, allow multiple
        selection. New option to automatically select Nets from the Netlist
        browser into the SelectionWidget (temporarily set up in cumulative
        mode).
    - Rename : SelectorCommand into SelectorCriterion (file name renaming in
        next commit).
    - Reorganisazion : in CellWidget, SelectorCommand/SelectorCriterions operations
        are gathered in a single object : SelectionCriterions.

 _____________________________________________________________________________


  * ./hurricane/src/hviewer :
    - Rename : SelectorCommand into SelectorCriterion (file part).

 _____________________________________________________________________________


  * ./hurricane/src/hviewer :
    - Bug: Bad detection of libraries in HURRICANE_CHECK_LIBRARY macro.
    - New feature : add a "selectable" characteric on drawable objects. Allows
        to selectively select objects through dragging. Note that it's implemented
        in term of BasicLayer & ExtensionGo. If an object (Component) has a Layer
        composed of more than one BasicLayer it will become selectable as soon as
        one of it's BasicLayer is selectable.

 _____________________________________________________________________________


  * ./hurricane/src/hurricane :
    - New feature : remove Hurricane's original basic Timer and replace it with
        the one from Coriolis/crlcore. Added ability to get the elapsed time
        without stopping the timer.
  * ./hurricane/src/hviewer :
    - New feature : complete redesign of the drawing refreshment loop. Now there's
        a "secondary" loop managed by the "RedrawManager" object which bufferize
        the redraw requests. The "_redraw()" function has been made interruptible
        at coarse level (between layer).
          Important note about the redrawing design : the QApplication::processEvents()
        function cannot be called inside the paintEvent() functions/sub-functions.
        So the drawing is separated from the paintEvent. The paintEvent() performs
        only quick pixmap buffer copy. The _redraw() is triggered by the move/refresh
        events bufferized by the RedrawManager, flush periodically the loop event 
        and send direct (not posted) paint events (repaint() call).
          Another constraint is that the displayed Widget can only be painted during
        the paintEvent(). Otherwise the painter refuses to initialize.
    - Ergonomy : adopt more standard key/mouse bindings. No more CTRL key for zooming
        (too small zooms are rejecteds, thresold at 10x10 pixels). Continuous move
        is enabled with SPACE+mouse.

  * ./coriolis/src/unicorn :
    - Reorganisation : Unicorn is now supplied as a separate library. Due to a limitation
        of cmake the binary can no longer be named "unicorn" as it conflicts with the
        library name. So it's been renamed into unimain (better candidates?)

 _____________________________________________________________________________


  * Merry Christmas & Fuck Numericable.
  * ./hurricane/src/hurricane :
    - New feature: Display support for Rubber, three modes of representation : centric,
        barycentric and (pseudo) steiner.
    - New feature: ability to generate pdf/ps snapshot using QPrinter. Can perform
        an exact snapshot or print a synthetic A4 (choice hard-wired for now).
    - Change: display styles reorganisation, recreation of the "Alliance Graal" look.
    - New feature: darkening managment at CellWidget level, to allow Extension to
        darken when unselecteds.
    - New feature: ExtentionGo are now managed by the selection redraw function.
    - New feature: Selector set is now sorted by object type, this allow to speedup
        the redraw function which will now perform only one loop.

 _____________________________________________________________________________


  * ./hurricane/src/hurricane :
    - Bug : Timer.h/.cpp, friend overload of the operator<<(ostream&) introduce
        a ostream<<() function in the Hurricane namespace which prevent the
        overload to resolve correctly under MacOS X (gcc 4.0).

 _____________________________________________________________________________


  * ./hurricane/src/hurricane :
    - New feature: support for breakpoints with a selectable stop level.
        See Breakpoint.h. Graphical popup automatically when Graphics is
        enabled.
          User can select what to do when a breakpoint is reached and valid
        through a callback mechanism.
          A disabled example is avalaible in GraphicKatabaticEngine.cpp.
    - Ergonomy : reverse the zooming direction of the mouse weel (some said
        it's like in MS Word...).
    - Bug: accept zoom when bottom right is below lower left (absolute value).

 _____________________________________________________________________________


  * ./hurricane/src/hviewer :
    - Bug: redraw the palette layer samples whenever the style changes. Uses a
        new, more clear model to transmit signals. A star model where the
        CellWidget is the center, signals propagate a void pointer which tells
        the emitter to avoid looping. First a slave emit the signal to the
        CellWidget. When the CellWidget receive the signal it's transmitted to
        all slave widgets.
    - New feature: ExceptionWidget (derived from QDialog) to display properly
        catched exceptions. The Abort button of the Dialog forces the program
        to core-dump with a SIGSEGV. The "Try to Continue" resumes the program,
        which is higtly to crash anyway...
    - New feature: a HApplication in replacement of the QApplication to catch
        exceptions in the notify() function, that is exceptions that could be
        throwed inside event handlers.

  * ./coriolis/src/unicorn :
    - New feature: making uses of HApplication.

 _____________________________________________________________________________


  * ./coriolis/src/crlcore :
    - New feature: users can select it's preferred display style through the
        environment.

 _____________________________________________________________________________


  * ./hurricane/src/hviewer :
    - Change: BreakpointWidget is no longer modal, need to replace the ::exec()
        by a custom made one.

 _____________________________________________________________________________


  * ./coriolis/src/katabatic :
    - Supress the last remnants of Nimbus (used to build the GCell grid),
        now read the grid cut lines from Katabatic.

  * ./coriolis/src/unicorn :
    - No more linking with Nimbus library.

 _____________________________________________________________________________


  * ./coriolis/src/katabatic :
    - Bug: correctly build the GCell grid from Knik.

 _____________________________________________________________________________


  * ./hurricane/src/hviewer :
    - Change: make ExceptionWidget & BreakpointWidget non-resizables.
2009-01-19 17:01:07 +00:00
Jean-Paul Chaput e507335c01 * ./hurricane/src/hviewer :
- Change: BreakpointWidget is no longer modal, need to replace the ::exec()
        by a custom made one.
2009-01-19 12:48:53 +00:00
Jean-Paul Chaput 3d486767eb Forgotten files. 2009-01-18 21:21:38 +00:00
Jean-Paul Chaput 8a2d46e21e * ./hurricane/src/hviewer :
- Bug: redraw the palette layer samples whenever the style changes. Uses a
        new, more clear model to transmit signals. A star model where the
        CellWidget is the center, signals propagate a void pointer which tells
        the emitter to avoid looping. First a slave emit the signal to the
        CellWidget. When the CellWidget receive the signal it's transmitted to
        all slave widgets.
    - New feature: ExceptionWidget (derived from QDialog) to display properly
        catched exceptions. The Abort button of the Dialog forces the program
        to core-dump with a SIGSEGV. The "Try to Continue" resumes the program,
        which is higtly to crash anyway...
    - New feature: a HApplication in replacement of the QApplication to catch
        exceptions in the notify() function, that is exceptions that could be
        throwed inside event handlers.
2009-01-18 21:17:43 +00:00
Jean-Paul Chaput a042ed5f86 Forgot the mushroom. 2009-01-09 15:25:07 +00:00
Jean-Paul Chaput 529594618e * ./hurricane/src/hurricane :
- New feature: support for breakpoints with a selectable stop level.
        See Breakpoint.h. Graphical popup automatically when Graphics is
        enabled.
          User can select what to do when a breakpoint is reached and valid
        through a callback mechanism.
          A disabled example is avalaible in GraphicKatabaticEngine.cpp.
    - Ergonomy : reverse the zooming direction of the mouse weel (some said
        it's like in MS Word...).
    - Bug: accept zoom when bottom right is below lower left (absolute value).
2009-01-09 15:18:26 +00:00
Damien Dupuis ddc3e541f1 - Adding function to correctly display routingGraph in knik
The dbuToDisplayRect function now has a boolean argument which is true by default and define the way the rectangle is passed to display.
    If true, it's like we pass 2 corners to define the rectangle
    If false, it's like we pass the bottom left corner, width and height (directly QT compliant)
2009-01-08 14:09:46 +00:00
Jean-Paul Chaput 5afca323b2 * ./hurricane/src/hurricane :
- Bug : Timer.h/.cpp, friend overload of the operator<<(ostream&) introduce
        a ostream<<() function in the Hurricane namespace which prevent the
        overload to resolve correctly under MacOS X (gcc 4.0).
2009-01-05 20:47:13 +00:00
Jean-Paul Chaput 9edbed80ae * Merry Christmas & Fuck Numericable.
* ./hurricane/src/hurricane :
    - New feature: Display support for Rubber, three modes of representation : centric,
        barycentric and (pseudo) steiner.
    - New feature: ability to generate pdf/ps snapshot using QPrinter. Can perform
        an exact snapshot or print a synthetic A4 (choice hard-wired for now).
    - Change: display styles reorganisation, recreation of the "Alliance Graal" look.
    - New feature: darkening managment at CellWidget level, to allow Extension to
        darken when unselecteds.
    - New feature: ExtentionGo are now managed by the selection redraw function.
    - New feature: Selector set is now sorted by object type, this allow to speedup
        the redraw function which will now perform only one loop.
2008-12-25 10:27:58 +00:00
Jean-Paul Chaput b725e49732 * ./hurricane/src/hurricane :
- New feature : remove Hurricane's original basic Timer and replace it with
        the one from Coriolis/crlcore. Added ability to get the elapsed time
        without stopping the timer.
  * ./hurricane/src/hviewer :
    - New feature : complete redesign of the drawing refreshment loop. Now there's
        a "secondary" loop managed by the "RedrawManager" object which bufferize
        the redraw requests. The "_redraw()" function has been made interruptible
        at coarse level (between layer).
          Important note about the redrawing design : the QApplication::processEvents()
        function cannot be called inside the paintEvent() functions/sub-functions.
        So the drawing is separated from the paintEvent. The paintEvent() performs
        only quick pixmap buffer copy. The _redraw() is triggered by the move/refresh
        events bufferized by the RedrawManager, flush periodically the loop event 
        and send direct (not posted) paint events (repaint() call).
          Another constraint is that the displayed Widget can only be painted during
        the paintEvent(). Otherwise the painter refuses to initialize.
    - Ergonomy : adopt more standard key/mouse bindings. No more CTRL key for zooming
        (too small zooms are rejecteds, thresold at 10x10 pixels). Continuous move
        is enabled with SPACE+mouse.

  * ./coriolis/src/unicorn :
    - Reorganisation : Unicorn is now supplied as a separate library. Due to a limitation
        of cmake the binary can no longer be named "unicorn" as it conflicts with the
        library name. So it's been renamed into unimain (better candidates?)
2008-12-20 16:56:05 +00:00
Christophe Alexandre 38807d7985 More and more cleaning in Isobar 2008-12-12 18:49:17 +00:00
Jean-Paul Chaput 8845533c25 * ./hurricane/src/hviewer :
- Bug: Bad detection of libraries in HURRICANE_CHECK_LIBRARY macro.
    - New feature : add a "selectable" characteric on drawable objects. Allows
        to selectively select objects through dragging. Note that it's implemented
        in term of BasicLayer & ExtensionGo. If an object (Component) has a Layer
        composed of more than one BasicLayer it will become selectable as soon as
        one of it's BasicLayer is selectable.
2008-12-12 13:28:19 +00:00
Christophe Alexandre a23a682c64 Return to the future for some parts...
PyParse_Tuple raises an exception on failure so it must be used only one time when
testing arguments
2008-12-12 13:16:47 +00:00
Christophe Alexandre 96c031c224 Box and contact are cleaned : no direct use of converter 2008-12-11 15:25:17 +00:00
Christophe Alexandre 61a58ff3d6 * no more PyNames, in the Python part, names are replaced by simple strings
and transformed in Names in the wrapper.
 * get rid of Converter in progress
2008-12-11 12:25:02 +00:00
Christophe Alexandre 452a52ee9e more cleaning in isobar :
- new arguments parsing method
 - get rid of PyNames...
Still lot to do ;)
2008-12-10 18:37:32 +00:00
Christophe Alexandre 69a2f10906 new argument parsing 2008-12-10 17:24:23 +00:00
Jean-Paul Chaput 9bd457393e * ./hurricane/src/hviewer :
Bug : make the Netlist Browser filter to work again. Have to ignore
     the keyPressEvent in NetlistWidget (a bit counter-intuitive:
     ignore event in NetlistWidget to have them accounteds in the
     SortFilter children widget).
2008-12-03 13:52:37 +00:00
Christophe Alexandre d5d17466d4 small modifications in isobar 2008-11-30 20:33:42 +00:00
Jean-Paul Chaput fc63d5dd6c * ./hurricane/src/hviewer :
- Rename : SelectorCommand into SelectorCriterion (file part).
2008-11-28 23:20:07 +00:00
Jean-Paul Chaput 4bc6940b39 * ./hurricane/src/hviewer :
- New feature : full uses of SelectionModel in NetlistWidget, allow multiple
        selection. New option to automatically select Nets from the Netlist
        browser into the SelectionWidget (temporarily set up in cumulative
        mode).
    - Rename : SelectorCommand into SelectorCriterion (file name renaming in
        next commit).
    - Reorganisazion : in CellWidget, SelectorCommand/SelectorCriterions operations
        are gathered in a single object : SelectionCriterions.
2008-11-28 23:10:39 +00:00
Jean-Paul Chaput e5f5ce3592 * ./hurricane/src/hviewer :
- Bug : InspectorWidget was using Record from Occurrences in the SelectionWidget.
        but those Occurences were created on the fly by the CellWidget/Selectors.
        So, whenever the selection changes the Occurrence may diseapear leaving a
        bad Record in the InspectorWidget (core dump).
          Now, the TabInspector keep a copy of the Inspected occurrence, so it
        can go through any selection change.
          In addition, the InspectorWidget could be passed Occurrence that it keeps
        local copy along with Record*.
    - New Feature : internal, first step toward an extensible ControllerWidget :
        now all Tab are derived classes of ControllerTab.
2008-11-27 15:09:04 +00:00
Jean-Paul Chaput 9c4d322de1 * ./hurricane/src/hviewer :
- A whole bunch of forgotten files.
2008-11-27 08:14:50 +00:00
Jean-Paul Chaput 88c2d138ad * ./hurricane/src/hviewer :
- Cleanup (part 2) : changing file names.
2008-11-26 10:13:31 +00:00
Jean-Paul Chaput 01ddcf4279 * ./hurricane/src/hviewer :
- New feature : first try at a more ergonomic interface. The "Controller",
        a simple Tabbed window for managing all settings.
          Reorganize the way things are selected (Nets, Area, single), aglomerated
        selection.
          Use a "logical" progression Netlist -> Selection -> Inspector.
    - In CellWiddget, new Selection managment mecanism to ensure persistent
        Selection across cell modifications.
          New signals/slots to manage Cell modification :
          a. - cellPreModificated() : must be launched *before* the Cell modification
               by the tool about to modify it.
          b. - cellPostModificated() : must be lauched *after* the Cell modification
          This mecanism may be amended to automatically fit with the UpdateSessions.  
    - Cleanup (part 1) : more consistent name for widgets, replace the 'H' prefix by
        a "Widget" suffix. Objects are modified by not filenames yet (due to svn not
        liking file renaming and modications at the same time).
    - Improved support for static building in CMakeList.txt.
2008-11-26 09:35:07 +00:00
Christophe Alexandre 92b3938f15 setBoundingBox for Pad 2008-11-20 14:26:42 +00:00
Christophe Alexandre 77e0872072 Introducing Pad as Python object 2008-11-20 10:56:11 +00:00
Christophe Alexandre e35c5ef8e5 wring function signatures 2008-11-19 17:36:30 +00:00
Christophe Alexandre 40e00bd4de get rid of annoying warning :
deprecated conversion from string constant to char*
still one occurrence of this warning, but I don't know how to treat
it between C++ and Python C API.
2008-11-18 11:54:01 +00:00
Jean-Paul Chaput 6d3904c0e2 * ./hurricane/src/hurricane :
- Bug : memory leak in Query.h. When we do try a levelDown() remove the
        Instance locator that have been created (and is not valid).
    - To trace the numbers of Instances Locator add a counter inside the
        QuadTree. The code is commented but could be useful in case of
        another memory leak...
2008-11-17 23:06:30 +00:00
The Coriolis Project 7068f0c092 Init -> init 2008-11-17 21:55:03 +00:00
Jean-Paul Chaput a9191bb93f * ./hurricane/src/hurricane :
- Bug : double deletion of ExtensionSlice, one in Cell and one in
        ExtensionGo::unmaterialize() when the last ExtensionGo is removed.
        Keep the one in unmaterialize.
    - Bug : missing "_preDestroy()" in ExtensionGo (not really a bug but may
        be useful in the future).
    - Modification : begin to uses "ltrace(level)" instead of "trace()".
        Levels affecteds to Hurricane are 0-10 (the lowest).
2008-11-16 22:11:40 +00:00
The Coriolis Project 6101ba0b3a delete old file 2008-11-14 11:48:39 +00:00
Jean-Paul Chaput f2c60cf6c9 * ./hurricane/src/hurricane :
- New : DebugSession for a selective trace activation, based on "symbols",
        that is, void pointers to objects.
    - New : ExtensionGos are now selectables (integrated to the
        Cell_OccurrencesUnder collection). Note that they are manageds as Gos
        and *not* ExtensionGos.
    - New : Bug flavor of Exception (sibling of Error & Warning).

  * ./hurricane/src/hviewer :
    - Change : ExtensionGos are now hidden by default.
2008-11-12 12:18:24 +00:00
Christophe Alexandre e370e8ac1c cmake FindHURRICANE macro now finds isobar library 2008-10-24 09:11:47 +00:00
Jean-Paul Chaput fcf01a1418 Remove forgotten trace messages. 2008-10-21 14:38:42 +00:00
Jean-Paul Chaput 26d07794ca * ./hurricane/src/hurricane :
- New : Mask object to manage masks.
    - New : BasicLayer ordering & connectivity is managed.
2008-10-21 13:49:48 +00:00
Christophe Alexandre 8397e7dccd PyCollections implementation 2008-10-19 22:07:32 +00:00
The Coriolis Project 07a1213ad8 collections still in progress 2008-10-17 17:51:31 +00:00
The Coriolis Project e7df77f51d new collections in progress 2008-10-17 17:27:20 +00:00
The Coriolis Project cd1c194268 cleaning in error message if bad arguments
net collections in progress
2008-10-14 18:44:20 +00:00
Christophe Alexandre 0f46cfdb7f net collections in progress 2008-10-14 10:48:53 +00:00
The Coriolis Project a102abdb8e wrong commit on CMakeLists.txt 2008-10-13 12:49:43 +00:00
Christophe Alexandre 5faaf81b59 simplifications and improvments in Isobar 2008-10-12 13:37:33 +00:00
Jean-Paul Chaput 48b0e4c3c6 * ./hurricane/src/hurricane/ExtensionSlice.h
./hurricane/src/hurricane/ExtensionSlice.cpp
   ./hurricane/src/hurricane/ExtensionGo.h
   ./hurricane/src/hurricane/ExtensionGo.cpp :
   - New : support for user-based Gos & Slices. A normal slice is a couple
      (Layer,QuadTree) while a ExtensionSlice is a couple (Name,Quadtree).
      Note that for efficiency ExtensionSlices also uses a mask bitmap.
        This new feature implies modifications of the Cell QuadTrees and
      the Query callback/class. CellWidget & Palette also updated to allow
      the drawing of thoses new slices.

  * ./coriolis/src/crlcore/src/cyclop/DemoGo.{h,cpp} :
    - Example : how to construct & uses an ExtensionGo (draw a thick red
        box around the Cell's abutment box).
2008-10-07 15:01:32 +00:00
Jean-Paul Chaput e32a20b23f * ./hurricane/src/hurricane/Name.h
./hurricane/src/hurricane/Name.cpp :
   - New feature : Allocate a static member "_emptyName" which could be used
       to manage effeciently empty Name (for functions returning reference on
       Name, by example).

 * ./hurricane/src/hurricane/Property.h
   ./hurricane/src/hurricane/Property.cpp :
   - Change : Now StandardPrivateProperty & StandardSharedProperty templates
       systematically uses static member for the property's name. This leads
       to suppress the "const Name&" argument when creating a property, and
       the _name member is no longer present in each object instance.
   - Change : Property must now be created/get through static methods :
               StandardPrivateProperty<Value>::get ( DBo* );
               StandardPrivateProperty<Value>::create ( DBo* );
               StandardPrivateProperty<Value>::create ( DBo*, const Value& );
       Note that, as before, the Value type must provide a default constructor
       and a copy constructor.

  * ./hurricane/src/hviewer/DisplayStyle.cpp :
    Bug : early Graphics::enable() no longer makes application crash.
2008-10-04 15:44:15 +00:00
Christophe Alexandre 8fe480ea30 getExternalComponents(Net* net) -> NetExternalComponents::get(Net* net) 2008-09-29 13:58:35 +00:00
Christophe Alexandre b0b5c18058 Orientation documentation 2008-09-26 14:07:10 +00:00