[wingide-users] script to toggle vertical tools <=> editor split
Wingware Support
support at wingware.com
Mon Jul 20 14:13:16 MDT 2009
Jonathan March wrote:
> Since I still have only one monitor, I have found myself going back and
> forth between a left-right editor split, and a single editor panel with
> the vertical tools panel, using 3 different key bindings. The following
> script defines a new command vertical-toggle, to do this. It can be
> bound to a single key.
>
> import wingapi
>
> def vertical_toggle():
> 'toggle: left-right editor split, vs one editor plus vertical tools'
> # If editor is split, unsplit it and show the vertical tools panel.
> # Otherwise, hide the vertical tools and split the editor left-right
> # Assumes default windowing policy (combined toolbox & editor windows.)
> app = wingapi.gApplication
> app.ExecuteCommand('focus-current-editor')
> state = app.GetVisualState(style='tools-and-editors')
> ed_states = state['windows'][0]['view']['primary_view_state']\
> ['primary_view_state']['editor_states']
> split = not isinstance(ed_states,dict)
> if split:
> app.ExecuteCommand('unsplit', action='current')
> app.ExecuteCommand('show-vertical-tools')
> else:
> app.ExecuteCommand('hide-vertical-tools')
> app.ExecuteCommand('split-horizontally')
Here's a simpler version that doesn't depend on the internals of the states
(which may change over time, albeit in a semi-controlled way):
def toggle_vertical_split():
"""If editor is split, unsplit it and show the vertical tools panel.
Otherwise, hide the vertical tools and split the editor left-right
Assumes default windowing policy (combined toolbox & editor windows).
Thanks to Jonathan March for this script."""
app = wingapi.gApplication
app.ExecuteCommand('focus-current-editor')
if app.CommandAvailable('unsplit'):
app.ExecuteCommand('unsplit', action='current')
app.ExecuteCommand('show-vertical-tools')
else:
app.ExecuteCommand('hide-vertical-tools')
app.ExecuteCommand('split-horizontally')
I've added this to our scripts/editor_extensions.py example file, with
Jonathan's permission, but figured I'd follow up here also.
Thanks!
--
Stephan Deibel
Wingware | Python IDE
Advancing Software Development
www.wingware.com
More information about the wingide-users
mailing list