• 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. creating a browse button to browse directories

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 145
  • Views 16954
  • 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

creating a browse button to browse directories

harishgurram
harishgurram over 11 years ago

 Hi,

How to create  a  button to browse directories. The user can able to select multiple directories, and the output should be of return type list.

Please tell me how to do this.

 Thanks,

 Harish.

  • Cancel
  • Quek
    Quek over 11 years ago

    Hi Harish

    You can do it as follows:

    a. Create a string field in a form
    b. Create a button field and reference the string field:

          runDir=hiCreateStringField(
             ?name 'runDir
             ?prompt "Run dir"
             ?value "./avSVS"
          ) ;hiCreateStringField

          dirSel = hiCreateFormButton(
             ?name 'dirSel
             ?buttonText "..."
             ?callback "ddsFileBrowseCB(hiGetCurrentForm() 'runDir \"*\" 'directoryOnly)"
          ) ;hiCreateFormButton


    Best regards
    Quek

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

       IC61x includes the hiCreateFileSelectorField which automatically does the things that Quek created with two fields. It includes the same modes as ddsFileBrowseCB. This is example was cut from a program I wrote for a client but the documentation in the UI reference manual is very good.

    Ted

     

         lmField = list( hiCreateFileSelectorField(
                     ?name '_LayerMapFile
                     ?prompt "Stream Layer Map"
                     ?mode 'existingFile
                     ?value AEgetLayerMap( geGetEditCellView())
                     ?defValue AEgetDefaultLayerMap( geGetEditCellView())
                     ?callback sprintf( nil "AEgetFormCheckFileExists( %s '_LayerMapFile )" formName )
                     ?editable t
            )
            0:(fieldHeight + fieldSpacing) * row++ fieldWidth:fieldHeight promptWidth)

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

    Hi,

    But with this type of button we can not select multiple directories, I mean we can select at a time one directory only. But I need a list which contains all my selected directories. How to do this.

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

     You are correct, it only works for a single directory, it can work with multiple files but not multiple directories. You possibly could add a callback which builds a list of directories but maybe Quek's solution is better in this case. I've not used ddsFileBrowseCB.

    Ted

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

    Hi,

    Try this example instead:

    lb = hiCreateListBoxField(?name 'CCStest ?prompt "Select directories" 
          ?choices setof(obj getDirFiles(".") isDir(obj)) ?multipleSelect t)
    => listBStruct@0x233fb578
    fm = hiCreateAppForm(?name 'CCStestForm ?formTitle "Multiple dir select" 
           ?fields list(list(lb 0:0 400:230 100)))
    => formStruct@0x233fb598
    hiDisplayForm(fm)
    
    ...  ...
    
    hiFormDone(CCStestForm)  <--- this shows in the CDS.log when the form is done
    
    hiGetListBoxValue(fm->CCStest)
    => ("test" "rectTest" "cpTest" "copyTest")
    

    Hopefully you get the idea, use a listbox field with multipleSelect true and then obtain the value of what was selected afterwards.

    Best regards,

    Lawrence.

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

    Thanks, Lawrence. 

    Neither ddsFileBrowserCB nor hiCreateFileSelectorField allow you to select multiple directories. Maybe file an enhancement CCR on that one?

    Ted

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • saurabh96
    saurabh96 over 4 years ago in reply to skillUser

    Hi Lawrence,

    Suppose from browse button we had to only call .gds or .cdl file and if user select other than these two extension file will not be select.How we can do it using skill in browse button option?

    • 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