• Login
sketchucation logo sketchucation
  • Login
🤑 SketchPlus 1.3 | 44 Tools for $15 until June 20th Buy Now

How to use the toolbar.show method

Scheduled Pinned Locked Moved Developers' Forum
6 Posts 4 Posters 676 Views
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.
  • H Offline
    honoluludesktop
    last edited by 28 Nov 2010, 23:19

    The toolbar.show method indicates that "The show method is used to display the toolbar in the user interface". I take this to mean that the plugin starts with the toolbar selected. I implemented it as follows, but with no success. What am I doing wrong?

    select_tb=UI::Toolbar.new("Position Shadows") cmd4=UI::Command.new("Decrement West") { longitude=hdt_sun_sub_long(longitude) } cmd4.small_icon=file_path_name+"arrows_left_16.png" cmd4.large_icon=file_path_name+"arrows_left_24.png" cmd4.tooltip="Decrement Shadows West" select_tb.add_item(cmd4) select_tb.show

    1 Reply Last reply Reply Quote 0
    • T Offline
      thomthom
      last edited by 29 Nov 2010, 07:12

      That should do it.

      But use toolbar.restore instead so it appear in it's last location. And also make sure you don't display the toolbar unless it was visible last time.

      <span class="syntaxdefault"><br /></span><span class="syntaxkeyword">if&nbsp;</span><span class="syntaxdefault">toolbar</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">get_last_state&nbsp;</span><span class="syntaxkeyword">==&nbsp;</span><span class="syntaxdefault">TB_VISIBLE<br />&nbsp;&nbsp;toolbar</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">restore<br />end<br /></span>
      

      (Note - this will make it so the toolbar isn't displayed by default the first time the plugin is run. If you want that you also want to check if the last state was TB_NEVER_SHOWN.)

      (Note the comment I added to the API pages about an SU bug regarding floating toolbar sizes. http://code.google.com/apis/sketchup/docs/ourdoc/toolbar.html#commentWidgetTitle)

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

      1 Reply Last reply Reply Quote 0
      • H Offline
        honoluludesktop
        last edited by 29 Nov 2010, 16:43

        Thanks, Tom.

        1 Reply Last reply Reply Quote 0
        • J Offline
          Jim
          last edited by 1 Dec 2010, 12:54

          This is from the Solar North toolbar - it doesn't use show at all, only restore.

          # Show toolbar if it was open when we shutdown.
            state = toolbar.get_last_state
            if (state == TB_VISIBLE)
              toolbar.restore
              # Per bug 2902434, adding a timer call to restore the toolbar. This
              # fixes a toolbar resizing regression on PC as the restore() call
              # does not seem to work as the script is first loading.
              UI.start_timer(0.1, false) {  toolbar.restore }
            end
          

          Hi

          1 Reply Last reply Reply Quote 0
          • T Offline
            thomthom
            last edited by 1 Dec 2010, 13:04

            That's the same snippet the Sandbox Tool use.

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

            1 Reply Last reply Reply Quote 0
            • D Offline
              Dan Rathbun
              last edited by 28 Feb 2011, 15:08

              I recommend the following snippet:

              (Assume a boolean constant PC is set (see 2nd snippet.)

              <span class="syntaxdefault">    </span><span class="syntaxcomment"># show the toolbar<br /></span><span class="syntaxdefault">    delay </span><span class="syntaxkeyword">=(</span><span class="syntaxdefault"> Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">version</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">to_i </span><span class="syntaxkeyword">>=</span><span class="syntaxdefault"> 8 </span><span class="syntaxkeyword">?</span><span class="syntaxdefault"> 0.3 </span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> 1.0 </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    state </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">@@</span><span class="syntaxdefault">toolbar</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">get_last_state <br />    if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">state </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> TB_VISIBLE</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">      </span><span class="syntaxkeyword">@@</span><span class="syntaxdefault">toolbar</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">restore<br />      </span><span class="syntaxcomment">#<br /></span><span class="syntaxdefault">      </span><span class="syntaxcomment"># Per bug 2902434; resize regression on PC<br /></span><span class="syntaxdefault">      UI</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">start_timer</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">delay</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> false</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">@@</span><span class="syntaxdefault">toolbar</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">restore </span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> if PC<br />      </span><span class="syntaxcomment">#<br /></span><span class="syntaxdefault">    elsif </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">state </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> TB_NEVER_SHOWN</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&&</span><span class="syntaxdefault"> PC<br />      </span><span class="syntaxcomment"># We DONT want to show them until the user wants them,<br /></span><span class="syntaxdefault">      </span><span class="syntaxcomment"># but we cannot leave the state as TB_NEVER_SHOWN, as<br /></span><span class="syntaxdefault">      </span><span class="syntaxcomment"># there is a PC bug that inserts phantom empty toolbar<br /></span><span class="syntaxdefault">      </span><span class="syntaxcomment"># windows up near the menubar, if state is -1.<br /></span><span class="syntaxdefault">      if Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">version</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">to_i </span><span class="syntaxkeyword">>=</span><span class="syntaxdefault"> 8<br />        </span><span class="syntaxcomment"># We show it, then hide it so it will float later.<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">@@</span><span class="syntaxdefault">toolbar</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">show<br />        UI</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">start_timer</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">delay</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> false</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">@@</span><span class="syntaxdefault">toolbar</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">hide </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">      else </span><span class="syntaxcomment"># vers 6 & 7<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">@@</span><span class="syntaxdefault">toolbar</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">hide  </span><span class="syntaxcomment"># Sets last_state to TB_HIDDEN initially.<br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment"># Users may still contend with "toolbar shuffle" later.<br /></span><span class="syntaxdefault">      end<br />    end<br /></span>
              
              • If there are any LoadErrors in any startup script.. the toolbars will not resize unless the user closes the LoadError dialog before the delay fires the UI.start_timer block.

              Setting platform constants: MAC, OSX, PC, and WIN
              (This snippet can be inside your module or class, making them local constants, or you can paste them into the 'Tools/sketchup.rb' file so they get defined as global constants.)

              <span class="syntaxdefault">  unless defined</span><span class="syntaxkeyword">?(</span><span class="syntaxdefault">Object</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">MAC</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> <br />    Object</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">MAC </span><span class="syntaxkeyword">=(</span><span class="syntaxdefault"> Object</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">RUBY_PLATFORM </span><span class="syntaxkeyword">=~</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">/</span><span class="syntaxdefault">darwin</span><span class="syntaxkeyword">/</span><span class="syntaxdefault">i </span><span class="syntaxkeyword">?</span><span class="syntaxdefault"> true </span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> false </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">  end<br />  unless defined</span><span class="syntaxkeyword">?(</span><span class="syntaxdefault">Object</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">WIN</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> <br />    Object</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">WIN  </span><span class="syntaxkeyword">=(</span><span class="syntaxdefault"> not Object</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">MAC </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">  end<br />  Object</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">OSX </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Object</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">MAC unless defined</span><span class="syntaxkeyword">?(</span><span class="syntaxdefault">Object</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">OSX</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">  Object</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">PC  </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Object</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">WIN unless defined</span><span class="syntaxkeyword">?(</span><span class="syntaxdefault">Object</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">PC</span><span class="syntaxkeyword">)</span><span class="syntaxdefault">  </span>
              

              I'm not here much anymore.

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

              Advertisement