Show clickable url in the command window and other formatting

Hi all,

For a plugin that we are writing, we are automatically writing some files to the same folder of the current .3dm file. We would like to let a user click on a link in the command window to go to that folder automatically. I have tried some html code, but that doesn’t work.

Additionally it would be nice to have some basic text formatting for the command window. Is there any way to do this? It would be mostly for applying text colors and bold/italic.

Thank you

let a user click on a link
have some basic text formatting

No this is not possible, the command window is just plain text, afaik.

@p_vdb, not shure which language you code in but below is one example in python which gets the path of the current (saved) document and then displays an option to open the folder the document was saved in using the built in Rhino command _Run:

import Rhino
import rhinoscriptsyntax as rs
import os

def GetSomething():
    document_path = rs.DocumentPath()
    if not document_path: return False
    
    go = Rhino.Input.Custom.GetString()
    go.SetCommandPrompt("Get something...")
    go.AddOption("OpenDocumentFolder")
    
    while True:
        get_rc = go.Get()
        if go.CommandResult()!=Rhino.Commands.Result.Success:
            return go.CommandResult()
        if get_rc==Rhino.Input.GetResult.Option:
            if go.OptionIndex() == 1:
                cmd = chr(34) + os.path.dirname(document_path) +chr(34)
                rs.Command("_Run " + cmd, True)
            continue
        break
    
if __name__=="__main__":
    GetSomething()

c.

Perhaps something like this?

protected override Result RunCommand(RhinoDoc doc, RunMode mode)
{
  string folder = null;

  var gs = new GetString();
  gs.SetCommandPrompt("Folder to open");
  gs.AddOption("DefaultFolder");
  var res = gs.Get();
  if (res == GetResult.Option)
  {
    folder = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
  }
  else if (res == GetResult.String)
  {
    var path = gs.StringResult().Trim();
    if (string.IsNullOrEmpty(path))
      return Result.Nothing;
    if (!Directory.Exists(path))
      return Result.Failure;
    folder = path;
  }
  else
  {
    return Result.Cancel;
  }

  Process.Start(folder);

  return Result.Success;
}

I have something similar as what you suggest implemented now, but that is quite an active way of forcing this folder on the user. A clickable url is much more passive from a UI point of view.

If the command window is not able to show formatted text, than this will do fine. Thanks for the suggestions all.