Site Tools


window

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

window [2007/03/28 22:26] (current)
Line 1: Line 1:
 +# $EPIC: window.txt,​v 1.9 2007/03/28 22:26:59 jnelson Exp $
 +======Synopsis:​======
 +[[window]] //<​refnum>//​ //<​command>​ [<​arguments>​ ...]//
 +
 +======About Servers:​======
 +Windows are portals to irc servers. ​ Through your windows, you send and 
 +receive data from the irc servers you are connected to.  Each open server ​
 +has one (or more) windows "​attached"​ to it.  This association is so strong ​
 +that a server is connected to when the first window is attached and a 
 +server is disconnected when the last window is detached.
 +
 +======About Screens:​======
 +Screens are the portal between you and your windows. ​ When you are typing
 +text, you are actually talking to the screen, and the screen sends your 
 +commands on to the current window, who then talks to its associated server.
 +Windows can be visible (assigned to a screen) or hidden (not assigned to
 +a screen), and this does not affect their operation.
 +
 +======Description:​======
 +The WINDOW command allows you to manipulate your windows. ​ You can perform
 +roughly 7 types of operations:
 +
 +=====Type 1 -- Servers=====
 +
 +The primary duty of every window is to act as a portal to a server, to
 +hold output between you and the server. ​ These operations allow you to
 +assign or de-assign a window'​s connection with servers
 +| [[window discon|DISCON]] | (Deprecated) Disassociate window with server |
 +| [[window noserv|NOSERV]] | Force the window not to belong to any server |
 +| [[window server|SERVER]] | Associate window with server |
 +
 +=====Type 2 -- Message routing=====
 +
 +Each server can have multiple windows, and you may want to sort the 
 +output from a server and send it to various windows based on different
 +criteria. ​ An example of this is having a separate window for each 
 +channel or query. ​ These operations allow you to tell what window gets
 +what otuput.
 +| [[window add|ADD]] | Associate nick/target with this window |
 +| [[window channel|CHANNEL]] | Make channel this window'​s current channel |
 +| [[window echo|ECHO]] | Output a message to this window |
 +| [[window level|LEVEL]] | Associate output levels with this window |
 +| [[window query|QUERY]] | Set a window'​s default message target |
 +| [[window rejoin|REJOIN]] | Join a channel on this window'​s server |
 +| [[window remove|REMOVE]] | Disassociate nick/target with this window |
 +
 +=====Type 3 -- Screen management=====
 +
 +Each window can either be visible (assigned to a screen) or hidden
 +(not assigned to a screen), and can have be in any position and of 
 +any size.  These operations allow you to manage the placement and 
 +composition of your windows on your screens.
 +| [[window back|BACK]] | Do a [[window refnum_or_swap]] to the window that was previously the current window on this screen. |
 +| [[window balance|BALANCE]] | On a split screen, make all windows on this screen the same size |
 +| [[window create|CREATE]] | Create a new physical screen and new window on it |
 +| [[window delete|DELETE]] | Destroy the current screen (cannot destroy the first screen) |
 +| [[window fixed|FIXED]] | Toggle value: ON means the window'​s size cannot be changed implicitly. |
 +| [[window goto|GOTO]] | On a split screen, switch to the Nth window (1 == top window) |
 +| [[window grow|GROW]] | On a split screen, increase this window'​s size |
 +| [[window hide|HIDE]] | On a split screen, make this window invisible (disassociate it from the window) |
 +| [[window hide_others|HIDE_OTHERS]] | On a split screen, make all other windows on this screen invisible |
 +| [[window kill|KILL]] | Irreversibly destroy this window. ​ See link -- this has several side effects! |
 +| [[window kill_all_hidden|KILL_ALL_HIDDEN]] | Irreversibly destroy all windows that are not on a screen ("​invisible"​) |
 +| [[window kill_others|KILL_OTHERS]] | Irreversibly destroy all other windows, visible or invisible |
 +| [[window killswap|KILLSWAP]] | Atomically [[window swap]] and [[window kill]] this window. |
 +| [[window last|LAST]] | On a split screen, Do a [[window refnum]] to the window that was previously the current window on this screen. ​ If that would fail, do a [[window goto]] 1 |
 +| [[window move|MOVE]] | On a split screen, move a window up or down in order. |
 +| [[window move_to|MOVE_TO]] | On a split screen, move a window to a certain place in the order. |
 +| [[window new|NEW]] | Split the screen, creating a new visible window. ​ Other windows are resized to make room. |
 +| [[window new_hide|NEW_HIDE]] | Create a new window not associated with any screen. Usually you [[window swap]] it in.|
 +| [[window next|NEXT]] | Do a [[window swap]] with the hidden window that has the next higher refnum than this window'​s refnum. |
 +| [[window pop|POP]] | Do a [[window refnum]] on the last window you did [[window push]] in.  If the window is hidden, [[window show]] it first. ​ If the window has been destroyed, do nothing. |
 +| [[window previous|PREVIOUS]] | Do a [[window swap]] with the hidden window that has the next smaller refnum than this window'​s refnum. |
 +| [[window push|PUSH]] | Save this window'​s refnum on the window refnum stack.
 +| [[window refnum|REFNUM]] | On a split screen, switch to the window with the specific refnum. ​ Fails if the window does not exist or is invisible. |
 +| [[window refnum_or_swap|REFNUM_OR_SWAP]]| Atomically does a [[window refnum]] or [[window swap]] on the specific refnum, whichever operation is appropriate.
 +| [[window show|SHOW]] | Associate another (invisible) window with this window'​s screen. ​ Fails if the other window is not invisible. ​ Windows are resized to make room |
 +| [[window show_all|SHOW_ALL]] | Do a [[window show]] on each hidden window. |
 +| [[window shrink|SHRINK]] | On a split screen, reduce the size of the window |
 +| [[window size|SIZE]] | On a split screen, make this window a certain size. |
 +| [[window skip|SKIP]] | Toggle value: ON means the window cannot be made the current window except by an explicit [[window refnum]]. ​ A window where FIXED == OFF and SKIP == OFF does not count as a visible window, even if it is visible. |
 +| [[window stack|STACK]] | Display the [[window push]] stack, removing any stale entries |
 +| [[window swap|SWAP]] | Atomically do a [[window hide]] on the current window and [[window show]] on another window. ​ If either operation would fail (ie, if the other window is not invisible), do nothing. |
 +| [[window swappable|SWAPPABLE]] | Toggle value: OFF means the window'​s visibility cannot be changed (if visible, cannot be hidden, if invisible, cannot be shown) |
 +
 +=====Type 4 -- View management=====
 +Each window has three "​views"​ which control what you see in your window.
 +These views are the Normal View, the Hold Mode View, and the Scrollback
 +View.  All three views operate independantly of the other two, and epic
 +automatically decides which view is being used.  These operations allow
 +you to control the three views, and what they show.
 +| [[window clear|CLEAR]] | Advance the Normal View so all of the lines on it are blank. |
 +| [[window flush|FLUSH]] | Irreversibly delete everything below what is visible in the Hold Mode View.  The Normal View is reset to the Hold Mode View. |
 +| [[window hold_interval|HOLD_INTERVAL]] | Integer value: The number of "held lines" are truncated down to multiples of this number (to prevent excessive redrawing of the status bar) |
 +| [[window hold_mode|HOLD_MODE]] | Boolean value: When first set ON, the Hold Mode View is reset to the Normal View, and is advanced every time the [[bind send_line]] keybinding is invoked.|
 +| [[window hold_slider|HOLD_SLIDER]] | Integer value: This is the percentage of the screen size that the Hold Mode View is advanced each time you invoke the [[bind send_line]] keybinding. ​ The default value is 100.|
 +| [[window indent|INDENT]] | Set [[SET INDENT|text indent]] on a per-window basis.|
 +| [[window scroll_backward|SCROLL_BACKWARD]] | This moves the Scrollback View back towards the older part of the scrollback buffer. |
 +| [[window scroll_end|SCROLL_END]] | This cancels the Scrollback View, returning you to either the Hold Mode View, or the Normal View.|
 +| [[window scroll_forward|SCROLL_FORWARD]] | This moves the Scrollback View towards the newer part of the scrollback buffer. ​ When the Scrollback View reaches the same place as the Normal View, the Scrollback View is cancelled.|
 +| [[window scroll_start|SCROLL_START]] | This moves the Scrollback View to the oldest item in the scrollback buffer. |
 +| [[window scrolladj|SCROLLADJ]] | Toggle value: When ON, when a window increases in size, the Normal View is moved back so lines that have recently scrolled off are made visible again. ​ When OFF, the Normal View is unchanged, so blank lines are visible on the bottom of the window. |
 +| [[window scrollback|SCROLLBACK]] | Integer Value: Sets the minimum-maximum size of the scrollback buffer. ​ The scrollback buffer may grow larger than this value, but when it is truncated, it always retains this many items. |
 +| [[window search_back|SEARCH_BACK]] | Reset the Scrollback View so the top of the window contains the next older line that matches a regex pattern. |
 +| [[window search_forward|SEARCH_FORWARD]] | Reset the Scrollback View so the top of the window contains the next newer line that matches a regex pattern. |
 +
 +=====Type 5 -- Status bar=====
 +Every window has a status bar, which shows one or two lines of meta
 +information about the window and its associated server. ​ These
 +operations allow you to manage the window'​s status bar
 +| [[window double|DOUBLE ]] | Toggle value: When ON, the window will show two status bars.  When OFF, the window will show one status bar. |
 +| [[window killable|KILLABLE ]] | Toggle value: When ON, one is able to destroy the window. When OFF, /[[window kill]] produces no effect. |
 +| [[window notify|NOTIFY ]] | Toggle value: When ON, when the window is hidden and "​notifiable"​ output occurs to it, the window'​s refnum will appear in the %F status bar expando on the current window'​s status bar.|
 +| [[window notify_level|NOTIFY_LEVEL ]] | The output levels that are considered "​notifiable"​ |
 +| [[window notify_name|NOTIFY_NAME]] | What should appear in %F when this window is "​notifying"​ (defaults to the window'​s refnum). |
 +| [[window status_format|STATUS_FORMAT ]] | What should appear in the window'​s status bar when [[window double]] is off. |
 +| [[window status_format1|STATUS_FORMAT1 ]] | What should appear in the window'​s lower status bar when [[window double]] is on. |
 +| [[window status_format2|STATUS_FORMAT2 ]] | What should appear in the window'​s upper status bar when [[window double]] is on. |
 +| [[window status_special|STATUS_SPECIAL]] | What should appear in %. in this window'​s status bar. |
 +
 +=====Type 6 -- Others=====
 +These are the operations that don't fit nicely in the other categories.
 +| [[window beep_always|BEEP_ALWAYS]] | Toggle value: When OFF, beeps to this window are ignored when the window is hidden. ​ When ON, beeps to this window are sounded even when hidden. |
 +| [[window describe|DESCRIBE]] | Give more detailed information about this window. |
 +| [[window list|LIST]] | Summarize all windows, visible and invisible. |
 +| [[window lastlog|LASTLOG]] | Integer value: Sets the maximum size of the lastlog buffer. ​ This many logical lines of output are retained for use by the [[lastlog command|lastlog]] command. |
 +| [[window lastlog_level|LASTLOG_LEVEL]] | Logical lines of output whose output level is not one of these levels will not show up in the [[lastlog command|lastlog]] command. |
 +| [[window log|LOG]] | Toggle value: When ON, all logical lines of output to this window are saved to a logfile. |
 +| [[window logfile|LOGFILE]] | The filename where the log should be saved. |
 +| [[window name|NAME]] | The name of the window. |
 +| [[window number|NUMBER]] | The refnum of the window. |
 +| [[window prompt|PROMPT]] | XXX I think this is unused XXX |
 +| [[window refresh|REFRESH]] | Force screens to be updated/​redrawn,​ even if it's not time for it yet.  This may cause flicker. |
 +| [[window topline|TOPLINE]] | Change a window topline. |
 +| [[window toplines|TOPLINES]] | Change how many window toplines are visible. |
 +
 +=====Type 7 -- Deprecated=====
 +These operations used to have some function in the past, but they will
 +either be removed, or made useless in the future.
 +| [[window bind|BIND ]] | (Deprecated) Force this channel to be the current channel after a reconnect+rejoin. ​ EPIC5 does not have reconnect+rejoin. |
 +| [[window unbind|UNBIND]] | (Deprecated) Stop forcing this channel to be the current channel after a reconnect+rejoin. ​ EPIC5 does not have reconnect+rejoin. |
 +| [[window scratch|SCRATCH]] | (Deprecated) Toggle value: When ON, arbitrary lines on the window may be overwritten. ​ In EPIC5, all windows are scratch windows. |
 +| [[window scroll|SCROLL]] | (Deprecated) Toggle value: When OFF, output to a window wraps around from the bottom to the top, instead of scrolling old output up and off the top of the window. ​ In EPIC5, all windows are scrolling windows. |
 +
 +======Syntax:​======
 +The WINDOW command breaks down into a stream of operations of the form:
 +> [[WINDOW]] //<​refnum>//​ //<​operation>//​ //<​operation-arguments>//​
 +The <​refnum>​ is the target of the <​operation>​. ​ The <​refnum>​ is optional.
 +The default <​refnum>​ for the first operation is the current server, and the
 +default <​refnum>​ for subsequent operations is the window from the previous
 +operation. ​ This allows you to chain multiple operations together in one 
 +window.
 +
 +If any //<​operation>//​ fails, the window command fails immediately and any
 +further operations are NOT performed.
 +
 +If any //<​refnum>//​ does not exist, the window command fails immediately and
 +any further operations are NOT performed.
 +
 +======History:​======
 +The WINDOW command was already present in ircII2.1.5g.
 +Many of the WINDOW operations are EPIC extensions.
 +
  
window.txt ยท Last modified: 2007/03/28 22:26 (external edit)