• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC SKILL
  3. ddsSyncWithForm Question

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 143
  • Views 13906
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

ddsSyncWithForm Question

acook
acook over 11 years ago

When I run ddsSyncWithForm, it does not block my code from proceeding. For example

procedure( myButtonCB()

 ddsSyncWithForm(myForm 'browse 'libName 'cellName 'viewName)

myfunction() 

) 

 

I would like myfunction to run after the user has selected a cellview, instead it exectes immediatly.

As suggested in another post, I do not want to just trigger every time myForm->viewName is changed since I cannot know that the user has chosen the cell they want yet.

Is there a way to create a dialog that where the user selects a LCV and then returns that selection and allows the code to continue to execute or do I need to write my own implementation?

Thank you,

Aaron 

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    Aaron,

    I don't believe there's a blocking version of this. You'd probably have to build your own.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • acook
    acook over 11 years ago

    I went down the buld your own path (which was a good choice actually) but now I've got a new issue.

     For some reason the callback on my listbox is taking forever (1-4 seconds) so when I select a library there is lag until the cells get shown. I did some debugging and the lag does not seem to be due to my callback.

    Here is what my listbox looks like:

       l_lib = hiCreateListBoxField(

          ?name 'l_lib

          ?prompt ""

          ?choices libList

          ?value list()

          ?defValue list()

          ?valueByPosition nil

          ?callback "CGlibSelectCBlib"

          ?changeCB ""

          ?multipleSelect nil

          ?doubleClickCB ""

          ?CBOnReselect ""

          ?keepHistory nil

          ?enabled t

          ?invisible nil

          ?help ""

       ) 

     

    Here is it's callback:

    procedure( CGlibSelectCBlib()

     

       current_lib = car(cglibselect_form->l_lib->value)

     

       cellList = ddGetObj(current_lib)~>cells~>name

       cglibselect_form->l_cell->choices = cellList

          cglibselect_form->storedCells = cellList

       CGlibSelectCBcell()

     

    ) 

     

    It takes several seconds to get to the first line in that callback. Is this normal for the listbox or something up with my code library? 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    I don't think it's taking several seconds. What is happening is that the callback doesn't get called until the focus moves out of the field - that's normal with all field types. I tried this - if I move my cursor out of the form, then it gets triggered.

    I think you probably want to use ?changeCB rather than ?callback. If you do that, it calls the callback as soon as you've clicked.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • acook
    acook over 11 years ago

    Ahh! Sorry, I just didn't read the doc well enough.

    t_changeCB

    SKILL command executed when the value (selected items) of the

    list box has changed. Programmatic SKILL changes can also

    trigger this callback, for example:

    form->listbox->value->list( “newValue”) 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information