sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    Float toolbar on creation?

    Scheduled Pinned Locked Moved Developers' Forum
    45 Posts 7 Posters 1.2k Views 7 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • TIGT Offline
      TIG Moderator
      last edited by

      NO - even hacking the registry seems fraught ? πŸ˜•

      TIG

      1 Reply Last reply Reply Quote 0
      • thomthomT Offline
        thomthom
        last edited by

        😞

        Thomas Thomassen β€” SketchUp Monkey & Coding addict
        List of my plugins and link to the CookieWare fund

        1 Reply Last reply Reply Quote 0
        • R Offline
          remus
          last edited by

          I was under the impression that youd arrived at the 'no' yourself verdict a while ago after playing around with the relevant registry entries...

          http://remusrendering.wordpress.com/

          1 Reply Last reply Reply Quote 0
          • J Offline
            Jim
            last edited by

            @remus said:

            I was under the impression that youd arrived at the 'no' yourself verdict a while ago after playing around with the relevant registry entries...

            Yes, but I've been wrong before and it doesn't hurt to ask.

            How about getting a list of the Ruby toolbars?

            Hi

            1 Reply Last reply Reply Quote 0
            • thomthomT Offline
              thomthom
              last edited by

              @jim said:

              How about getting a list of the Ruby toolbars?

              As Toolbar objects?

              Thomas Thomassen β€” SketchUp Monkey & Coding addict
              List of my plugins and link to the CookieWare fund

              1 Reply Last reply Reply Quote 0
              • thomthomT Offline
                thomthom
                last edited by

                @tig said:

                Since the Toolbar methods are scant this is not much use, some extra methods like
                Toolbars.each
                Toolbar.name
                Tollbar... etc would be helpful ?

                Yea - something for the last.

                Though - I feel that SU need a new menu and toolbar system. One where authors register their menus and toolbars with SU - providing default position for them and allow the user to rearrange them as fit. I'd rather have that - if they are going to introduce new methods for the toolbar nightmare.

                Thomas Thomassen β€” SketchUp Monkey & Coding addict
                List of my plugins and link to the CookieWare fund

                1 Reply Last reply Reply Quote 0
                • TIGT Offline
                  TIG Moderator
                  last edited by

                  You can use Sketchup.read_default for ToolbarsUserNN in the registry and find the BarIDand BarNameetc for each one - and a few other relatively useless bits of info...

                  The entry ToolbarsUser-Summary > Bars gives the total number of 'user toolbars' so you can construct a loop to go through to find each one with NN ...

                  Since the Toolbar methods are scant this is not much use, some extra methods like
                  Toolbars.each
                  Toolbar.name
                  Toolbar... etc would be helpful ?

                  TIG

                  1 Reply Last reply Reply Quote 0
                  • thomthomT Offline
                    thomthom
                    last edited by

                    hmm...

                    Just noticed something.

                    Say that you have a toolbar named 'FooBar' created by another script.

                    If you from your own script do t = UI::Toolbar.new('FooBar')
                    You can then hide and show it, like this:

                    t.hide t.show t.visible?

                    promising - as now we can emureate the registry to get the toolbar names. (need a solution for OSX)
                    BUT!

                    Try to add separators or items...

                    c = UI::Command.new("Tester") { UI.messagebox("Hello World") } t.add_item(c)

                    Fail! 😞

                    So close.
                    But - this does allow us to create a method that returns a list of Ruby created toolbars and control their visibility. Just need that OSX solution.

                    Thomas Thomassen β€” SketchUp Monkey & Coding addict
                    List of my plugins and link to the CookieWare fund

                    1 Reply Last reply Reply Quote 0
                    • thomthomT Offline
                      thomthom
                      last edited by

                      hmm...

                      n = UI::Toolbar.new('FooBar') #<UI::Toolbar:0xd0820a8> n.add_item(c) #<UI::Toolbar:0xd0820a8> n.add_item(c) #<UI::Toolbar:0xd0820a8> n.add_separator #<UI::Toolbar:0xd0820a8> n.add_item(c) #<UI::Toolbar:0xd0820a8> n.show nil n.add_separator #<UI::Toolbar:0xd0820a8> n.add_item(c) #<UI::Toolbar:0xd0820a8>
                      Even when I have the original toolbar object I can't add items after the toolbar has been shown. The last two items in the above sample where not added to the toolbar. Is it really not possible to add items dynamically afterwards?

                      Thomas Thomassen β€” SketchUp Monkey & Coding addict
                      List of my plugins and link to the CookieWare fund

                      1 Reply Last reply Reply Quote 0
                      • thomthomT Offline
                        thomthom
                        last edited by

                        @tig said:

                        The entry ToolbarsUser-Summary > Bars gives the total number of 'user toolbars' so you can construct a loop to go through to find each one with NN ...

                        Sketchup.read_default('ToolbarsUser-Summary', 'Bars', nil)
                        This just returns 1 for me. The registry value is 49.

                        Thomas Thomassen β€” SketchUp Monkey & Coding addict
                        List of my plugins and link to the CookieWare fund

                        1 Reply Last reply Reply Quote 0
                        • TIGT Offline
                          TIG Moderator
                          last edited by

                          It should return that value BUT I don't even get 1 - I get nil ???

                          TIG

                          1 Reply Last reply Reply Quote 0
                          • thomthomT Offline
                            thomthom
                            last edited by

                            I wonder if Sketchup.read_default prevents access to SU's own registry values. Might have to use the Win32 API - or have anyone been able to access any of the other SU registry values?

                            I can only get S ketchup.read_default to return correct values for what Sketchup.write_default has created. πŸ˜• thought this could be an easy cross platform method for SU settings... 😞

                            Thomas Thomassen β€” SketchUp Monkey & Coding addict
                            List of my plugins and link to the CookieWare fund

                            1 Reply Last reply Reply Quote 0
                            • thomthomT Offline
                              thomthom
                              last edited by

                              Doing some tests:

                              
                              require 'C;/Ruby/lib/ruby/1.8/win32/registry.rb'
                              
                              
                              module TT_Test
                                
                                def self.toolbars
                                  toolbars = []
                                  begin
                                    path_summary = 'Software\\Google\\SketchUp7\\ToolbarsUser-Summary'
                                    Win32;;Registry;;HKEY_CURRENT_USER.open(path_summary) { |reg|
                                      bars = reg.read_i('Bars')
                                      
                                      (0..bars-1).each { |i|
                                        section = "ToolbarsUser-Bar#{i}"
                                        begin
                                          path_toolbar = "Software\\Google\\SketchUp7\\#{section}"
                                          Win32;;Registry;;HKEY_CURRENT_USER.open(path_toolbar) { |r|
                                            r.each { |subkey, type, data|
                                              if type == Win32;;Registry;;REG_SZ && subkey == 'BarName'
                                                toolbars << data
                                                break
                                              end
                                            }
                                          }
                                        rescue
                                          next
                                        end
                                      }
                                    }
                                    return toolbars
                                  rescue
                                    return nil
                                  end
                              
                                end # def
                              
                              end
                              
                              

                              Gets an array of Ruby Toolbars. Work on PC - but requires registry.rb. Will look into calling the Win32 API directly so it only requires Win32API.

                              (I'm not sure how to deal with requirements of standard ruby libraries. include the registry.rb with my plugin and load only if it isn't defined? require 'C:\ruby\lib\ruby\1.8\win32\registry.rb' if defined?(Win32::Registry).nil?)

                              How do you read settings on OSX? Where are these settings stored?

                              Thomas Thomassen β€” SketchUp Monkey & Coding addict
                              List of my plugins and link to the CookieWare fund

                              1 Reply Last reply Reply Quote 0
                              • TIGT Offline
                                TIG Moderator
                                last edited by

                                The Mac has 'plist' files like an 'ini' file == the registry...

                                TIG

                                1 Reply Last reply Reply Quote 0
                                • thomthomT Offline
                                  thomthom
                                  last edited by

                                  Does OSX have an API to read it, or do you just open it and parse it yourself?

                                  Thomas Thomassen β€” SketchUp Monkey & Coding addict
                                  List of my plugins and link to the CookieWare fund

                                  1 Reply Last reply Reply Quote 0
                                  • TIGT Offline
                                    TIG Moderator
                                    last edited by

                                    I am Macless. I don't know about plist API readers ...
                                    Here is a 'plist' set someone gave me for info - it is 'readable' - just about...MacPlistArchive.zip
                                    Here's another useful link http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/ConfigFiles.html

                                    TIG

                                    1 Reply Last reply Reply Quote 0
                                    • C Offline
                                      chrisjk
                                      last edited by

                                      There are plist editors available that make the task much simpler by parsing it for you and showing what can be changed etc. eg http://www.macupdate.com/info.php/id/14363

                                      Chris

                                      1 Reply Last reply Reply Quote 0
                                      • thomthomT Offline
                                        thomthom
                                        last edited by

                                        I'll check that out. I got an old Mac mini to test on.

                                        Thomas Thomassen β€” SketchUp Monkey & Coding addict
                                        List of my plugins and link to the CookieWare fund

                                        1 Reply Last reply Reply Quote 0
                                        • thomthomT Offline
                                          thomthom
                                          last edited by

                                          hmm... the Info.plist file in the Sketchup application package does not contain the same info we see in the Windows registry...

                                          Thomas Thomassen β€” SketchUp Monkey & Coding addict
                                          List of my plugins and link to the CookieWare fund

                                          1 Reply Last reply Reply Quote 0
                                          • J Offline
                                            Jim
                                            last edited by

                                            I can't seem to get a handle on the Large Tool Set to hide it, any ideas?

                                            i.e. these don't work:

                                            UI.set_toolbar_visible("Large Tool Set", false) UI.set_toolbar_visible("LargeToolSet", false)

                                            Hi

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 3 / 3
                                            • First post
                                              Last post
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement