• 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. Create GUI to store user input string

Stats

  • Locked Locked
  • Replies 11
  • Subscribers 143
  • Views 20358
  • 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

Create GUI to store user input string

blankman
blankman over 12 years ago
Hi,

I’m looking to create a GUI that takes and stores a number of input strings, ie lib name, cell name etc. I’ve tried using hiDisplayAppDBox, but this only allows for creation of buttons. Is there means of doing this?

Thanks,
Brian.
  • Cancel
Parents
  • blankman
    blankman over 12 years ago

    Andrew,

    Thanks.

    Form created using code below.

    How would I then go about saving/writing the selected cellview info (lib cell view) to the local .cdsinit file? I am looking to save and recall the info each time the tool is started, and auto stuff into the form.

    Thanks,
    Brian.

     

     /***************************************************************
    *                     Create the main form                     *
    ***************************************************************/

    procedure(oferCreateForm()
        let((libName1 cellName1 viewName1 browse1 libName2 cellName2 viewName2 browse2 libName3 cellName3 viewName3 browse3 sep1 sep2 sep3)
        ; cellView specification
        libName1=hiCreateStringField(
            ?name 'libName1
            ?prompt "Library Name 1"
            ?callback "ddsUpdateSyncWithForm()"
            )
        cellName1=hiCreateStringField(
            ?name 'cellName1
            ?prompt "Cell Name 1"
            ?callback "ddsUpdateSyncWithForm()"
            )
        viewName1=hiCreateStringField(
            ?name 'viewName1
            ?prompt "View Name 1"
            ?callback "ddsUpdateSyncWithForm()"
            )
        browse1=hiCreateButton(
            ?name 'browse1
            ?buttonText "Browse"
            ?callback "oferSyncBrowser()"
            )
        sep1=hiCreateSeparatorField(?name 'sep1)
        libName2=hiCreateStringField(
            ?name 'libName2
            ?prompt "Library Name 2"
            ?callback "ddsUpdateSyncWithForm()"
            )
        cellName2=hiCreateStringField(
            ?name 'cellName2
            ?prompt "Cell Name 2"
            ?callback "ddsUpdateSyncWithForm()"
            )
        viewName2=hiCreateStringField(
            ?name 'viewName2
            ?prompt "View Name 2"
            ?callback "ddsUpdateSyncWithForm()"
            )
        browse2=hiCreateButton(
            ?name 'browse2
            ?buttonText "Browse"
            ?callback "oferSyncBrowser()"
            )
        sep2=hiCreateSeparatorField(?name 'sep2)
        libName3=hiCreateStringField(
            ?name 'libName3
            ?prompt "Library Name 3"
            ?callback "ddsUpdateSyncWithForm()"
            )
        cellName3=hiCreateStringField(
            ?name 'cellName3
            ?prompt "Cell Name 3"
            ?callback "ddsUpdateSyncWithForm()"
            )
        viewName3=hiCreateStringField(
            ?name 'viewName3
            ?prompt "View Name 3"
            ?callback "ddsUpdateSyncWithForm()"
            )
        browse3=hiCreateButton(
            ?name 'browse3
            ?buttonText "Browse"
            ?callback "oferSyncBrowser()"
            )
        sep3=hiCreateSeparatorField(?name 'sep3)

        hiCreateAppForm(
            ?name 'oferExampleForm
            ?formTitle "Store Cellview Quick Launch"
            ?fields
            list(
                list(libName1 0:40 300:30 100)
                list(cellName1 0:70 300:30 100)
                list(viewName1 0:100 300:30 100)
                list(browse1 200:130 100:25)
                list(sep1 0:165 300:0)
                list(libName2 0:175 300:30 100)
                list(cellName2 0:205 300:30 100)
                list(viewName2 0:235 300:30 100)
                list(browse2 200:265 100:25)
                list(sep2 0:300 300:0)
                list(libName3 0:310 300:30 100)
                list(cellName3 0:340 300:30 100)
                list(viewName3 0:370 300:30 100)
                list(browse3 200:400 100:25)
                ;list(sep3 0:205 600:0)
                )
            )
        oferExampleForm
        )
        )



    /***************************************************************
    *                 Synchronise with the browser
    ***************************************************************/

    procedure(oferSyncBrowser()
        ddsSyncWithForm(
        oferExampleForm
        'browse1
        'libName1
        'cellName1
        'viewName1
        )
        )


    /***************************************************************
    *                       Main entry point
    ***************************************************************/

    procedure(oferExample()
        unless(boundp('oferExampleForm)
        oferCreateForm()
        )
        hiDisplayForm(oferExampleForm)
        )
       
    hiSetBindKey("Command Interpreter" "Ctrl Alt Shift<key>o" "oferExample()")

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • blankman
    blankman over 12 years ago

    Andrew,

    Thanks.

    Form created using code below.

    How would I then go about saving/writing the selected cellview info (lib cell view) to the local .cdsinit file? I am looking to save and recall the info each time the tool is started, and auto stuff into the form.

    Thanks,
    Brian.

     

     /***************************************************************
    *                     Create the main form                     *
    ***************************************************************/

    procedure(oferCreateForm()
        let((libName1 cellName1 viewName1 browse1 libName2 cellName2 viewName2 browse2 libName3 cellName3 viewName3 browse3 sep1 sep2 sep3)
        ; cellView specification
        libName1=hiCreateStringField(
            ?name 'libName1
            ?prompt "Library Name 1"
            ?callback "ddsUpdateSyncWithForm()"
            )
        cellName1=hiCreateStringField(
            ?name 'cellName1
            ?prompt "Cell Name 1"
            ?callback "ddsUpdateSyncWithForm()"
            )
        viewName1=hiCreateStringField(
            ?name 'viewName1
            ?prompt "View Name 1"
            ?callback "ddsUpdateSyncWithForm()"
            )
        browse1=hiCreateButton(
            ?name 'browse1
            ?buttonText "Browse"
            ?callback "oferSyncBrowser()"
            )
        sep1=hiCreateSeparatorField(?name 'sep1)
        libName2=hiCreateStringField(
            ?name 'libName2
            ?prompt "Library Name 2"
            ?callback "ddsUpdateSyncWithForm()"
            )
        cellName2=hiCreateStringField(
            ?name 'cellName2
            ?prompt "Cell Name 2"
            ?callback "ddsUpdateSyncWithForm()"
            )
        viewName2=hiCreateStringField(
            ?name 'viewName2
            ?prompt "View Name 2"
            ?callback "ddsUpdateSyncWithForm()"
            )
        browse2=hiCreateButton(
            ?name 'browse2
            ?buttonText "Browse"
            ?callback "oferSyncBrowser()"
            )
        sep2=hiCreateSeparatorField(?name 'sep2)
        libName3=hiCreateStringField(
            ?name 'libName3
            ?prompt "Library Name 3"
            ?callback "ddsUpdateSyncWithForm()"
            )
        cellName3=hiCreateStringField(
            ?name 'cellName3
            ?prompt "Cell Name 3"
            ?callback "ddsUpdateSyncWithForm()"
            )
        viewName3=hiCreateStringField(
            ?name 'viewName3
            ?prompt "View Name 3"
            ?callback "ddsUpdateSyncWithForm()"
            )
        browse3=hiCreateButton(
            ?name 'browse3
            ?buttonText "Browse"
            ?callback "oferSyncBrowser()"
            )
        sep3=hiCreateSeparatorField(?name 'sep3)

        hiCreateAppForm(
            ?name 'oferExampleForm
            ?formTitle "Store Cellview Quick Launch"
            ?fields
            list(
                list(libName1 0:40 300:30 100)
                list(cellName1 0:70 300:30 100)
                list(viewName1 0:100 300:30 100)
                list(browse1 200:130 100:25)
                list(sep1 0:165 300:0)
                list(libName2 0:175 300:30 100)
                list(cellName2 0:205 300:30 100)
                list(viewName2 0:235 300:30 100)
                list(browse2 200:265 100:25)
                list(sep2 0:300 300:0)
                list(libName3 0:310 300:30 100)
                list(cellName3 0:340 300:30 100)
                list(viewName3 0:370 300:30 100)
                list(browse3 200:400 100:25)
                ;list(sep3 0:205 600:0)
                )
            )
        oferExampleForm
        )
        )



    /***************************************************************
    *                 Synchronise with the browser
    ***************************************************************/

    procedure(oferSyncBrowser()
        ddsSyncWithForm(
        oferExampleForm
        'browse1
        'libName1
        'cellName1
        'viewName1
        )
        )


    /***************************************************************
    *                       Main entry point
    ***************************************************************/

    procedure(oferExample()
        unless(boundp('oferExampleForm)
        oferCreateForm()
        )
        hiDisplayForm(oferExampleForm)
        )
       
    hiSetBindKey("Command Interpreter" "Ctrl Alt Shift<key>o" "oferExample()")

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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