def rmq_build
      @self_rmq = rmq(self)

      # Storing the original stylesheet, so I can remove it, use our own, then
      # put it back when we close the inspector, a bit of hackery here
      @puppets_stylesheet = rmq.stylesheet

      rmq.stylesheet = InspectorStylesheet
      @self_rmq.apply_style(:inspector_view)

      @hud = @self_rmq.append(InspectorHud, :hud).on(:tap) do |sender, rmq_event|
        select_at rmq_event.location_in(sender)
      end.get

      root_view = rmq.root_view

      rmq(root_view).animate(
        animations: ->(q){ q.apply_style :root_view_scaled },
        after: ->(finished, q) do
          @self_rmq.animations.fade_in
          dim_nav
        end
      )

      @stats = @self_rmq.append! UILabel, :stats

      @self_rmq.append(UIButton, :close_button).on(:touch) do
        rmq(root_view).animate(
          animations: ->(q){ q.apply_style(:root_view) },
          after: ->(finished, inner_q){ rmq.stylesheet = @puppets_stylesheet })

        @self_rmq.animations.drop_and_spin(after: ->(finished, inner_q) do
          inner_q.remove
        end)

        @self_rmq = nil
        $q = nil
        show_nav_in_all_its_glory
      end

      @self_rmq.append(UIButton, :grid_button).on(:touch) do
        @hud.draw_grid = !@hud.draw_grid
        redisplay
      end

      @self_rmq.append(UIButton, :grid_x_button).on(:touch) do
        @hud.draw_grid_x = !@hud.draw_grid_x
        redisplay
      end

      @self_rmq.append(UIButton, :grid_y_button).on(:touch) do
        @hud.draw_grid_y = !@hud.draw_grid_y
        redisplay
      end

      @self_rmq.append(UIButton, :dim_button).on(:touch) do
        @hud.dimmed = !@hud.dimmed
        redisplay
      end

      @self_rmq.append(UIButton, :outline_button).on(:touch) do
        @hud.views_outlined = !@hud.views_outlined
        redisplay
      end

      @self_rmq.find(UIButton).distribute :horizontal, margin: 5

      @tree_zoomed = false
      @tree_q = @self_rmq.append(UIScrollView, :tree).on(:tap) do
        zoom_tree
      end
    end
def rmq_build
      @self_rmq = rmq(self)

      # Storing the original stylesheet, so I can remove it, use our own, then
      # put it back when we close the inspector, a bit of hackery here
      @puppets_stylesheet = rmq.stylesheet

      rmq.stylesheet = InspectorStylesheet
      @self_rmq.apply_style(:inspector_view)

      @hud = @self_rmq.append(InspectorHud, :hud).on(:tap) do |sender, rmq_event|
        select_at rmq_event.location_in(sender)
      end.get

      root_view = rmq.root_view

      rmq(root_view).animate(
        animations: ->(q){ q.apply_style :root_view_scaled },
        after: ->(finished, q) do
          @self_rmq.animations.fade_in
          dim_nav
        end
      )

      @stats = @self_rmq.append! UILabel, :stats

      @self_rmq.append(UIButton, :close_button).on(:touch) do
        rmq(root_view).animate(
          animations: ->(q){ q.apply_style(:root_view) },
          after: ->(finished, inner_q){ rmq.stylesheet = @puppets_stylesheet })

        @self_rmq.animations.drop_and_spin(after: ->(finished, inner_q) do
          inner_q.remove
        end)

        @self_rmq = nil
        $q = nil
        show_nav_in_all_its_glory
      end

      @self_rmq.append(UIButton, :grid_button).on(:touch) do
        @hud.draw_grid = !@hud.draw_grid
        redisplay
      end

      @self_rmq.append(UIButton, :grid_x_button).on(:touch) do
        @hud.draw_grid_x = !@hud.draw_grid_x
        redisplay
      end

      @self_rmq.append(UIButton, :grid_y_button).on(:touch) do
        @hud.draw_grid_y = !@hud.draw_grid_y
        redisplay
      end

      @self_rmq.append(UIButton, :dim_button).on(:touch) do
        @hud.dimmed = !@hud.dimmed
        redisplay
      end

      @self_rmq.append(UIButton, :outline_button).on(:touch) do
        @hud.views_outlined = !@hud.views_outlined
        redisplay
      end

      @self_rmq.find(UIButton).distribute :horizontal, margin: 5

      @tree_zoomed = false
      @tree_q = @self_rmq.append(UIScrollView, :tree).on(:tap) do
        zoom_tree
      end
    end
A note about this code. InspectorView will be sitting in the Window, not
 the current controller. So when you do this rmq(UIButton), that is on the
 current controller. rmq(self).find(UIButton) would be the buttons in the
 inspector.