Class: Fox::FXMDIClient
- Inherits:
-
FXComposite
- Object
- FXObject
- FXId
- FXDrawable
- FXWindow
- FXComposite
- Fox::FXMDIClient
- Defined in:
- rdoc-sources/FXMDIClient.rb
Overview
The MDI client window manages a number of MDI child windows in a multiple-document interface (MDI) application. MDI child windows usually receive messages from the GUI controls by delegation via the MDI client. This is accomplished by making the MDI client window the target for most GUI controls. The MDI client filters out messages intented for itself, and delegates the remaining messages to its currently active MDI child, if any. If you use the auto-gray or auto-hide feature available in some GUI controls, these controls can be automatically grayed out or hidden when there is no active MDI child. When delegating messages via MDI client to MDI child windows of different types, care should be taken that message ID’s do not overlap, so that all message ID’s only map to the intented handlers no matter which MDI child window type is active. The MDI client sends a SEL_CHANGED message to its target when the active MDI child is switched, with the void # pointer refering to the new MDI child. A MDI Window selection dialog can be brought up through the ID_MDI_OVER_X messages; a menu button connected to the MDI client with the ID_MDI_OVER_X message will be automatically grayed out if there are less than X MDI child windows.
Events
The following messages are sent by FXMDIClient to its target:
SEL_CHANGED
-
sent when the active child changes; the message data is a reference to the new active child window (or
nil
if there is none)
Instance Attribute Summary collapse
-
#activeChild ⇒ Object
Active MDI child window, or
nil
if none FXMDIChild. -
#cascadeX ⇒ Object
Cascade offset X [Integer].
-
#cascadeY ⇒ Object
Cascade offset Y [Integer].
Attributes inherited from FXWindow
#accelTable, #backColor, #defaultCursor, #dragCursor, #first, #focus, #key, #last, #layoutHints, #next, #numChildren, #owner, #parent, #prev, #root, #selector, #shell, #target, #x, #y
Attributes inherited from FXDrawable
Attributes inherited from FXId
Instance Method Summary collapse
-
#forallDocuments(sender, sel, ptr) ⇒ Object
Pass message once to all MDI windows with the same document, stopping when one of the MDI windows fails to handle the message.
-
#forallDocWindows(document, sender, sel, ptr) ⇒ Object
Pass message to all MDI Child windows whose target is document, stopping when one of the MDI windows fails to handle the message.
-
#forallWindows(sender, sel, ptr) ⇒ Object
Pass message to all MDI windows, stopping when one of the MDI windows fails to handle the message.
-
#initialize(p, opts = 0, x = 0, y = 0, width = 0, height = 0) ⇒ FXMDIClient
constructor
Construct MDI Client window.
-
#setActiveChild(child = nil, notify = true) ⇒ Object
Set active MDI child window for this MDI client to child.
Methods inherited from FXComposite
#maxChildHeight, #maxChildWidth
Methods inherited from FXWindow
#acceptDrop, #acquireClipboard, #acquireSelection, #active?, #addHotKey, after?, #after?, before?, #before?, #beginDrag, #canFocus?, #changeFocus, #childAtIndex, #childOf?, #children, #clearDragRectangle, #clearShape, colorType, colorTypeName, commonAncestor, #composeContext, #composite?, #contains?, #containsChild?, #create, #createComposeContext, #cursorPosition, #default?, #defaultHeight, #defaultWidth, deleteType, deleteTypeName, #destroy, #destroyComposeContext, #detach, #didAccept, #disable, #doesSaveUnder?, #dragging?, #dropDisable, #dropEnable, #dropEnabled?, #dropFinished, #dropTarget?, #each_child, #each_child_recursive, #enable, #enabled?, #endDrag, #forceRefresh, #getChildAt, #getDNDData, #getHeightForWidth, #getWidthForHeight, #grab, #grabKeyboard, #grabbed?, #grabbedKeyboard?, #handleDrag, #hasClipboard?, #hasFocus?, #hasSelection?, #height, #height=, #hide, imageType, #inFocusChain?, #indexOfChild, #initial?, #inquireDNDAction, #inquireDNDTypes, #killFocus, #layout, #linkAfter, #linkBefore, #lower, #move, octetType, octetTypeName, #offeredDNDType?, #position, #raiseWindow, #recalc, #releaseClipboard, #releaseSelection, #remHotKey, #removeChild, #repaint, #reparent, #resize, #scroll, #setCursorPosition, #setDNDData, #setDefault, #setDragRectangle, #setFocus, #setInitial, #setShape, #shell?, #show, #shown?, stringType, textType, textTypeName, #tr, #translateCoordinatesFrom, #translateCoordinatesTo, #underCursor?, #ungrab, #ungrabKeyboard, #update, urilistType, urilistTypeName, utf16Type, utf16TypeName, utf8Type, utf8TypeName, #visible=, #width, #width=
Methods included from Responder2
Methods inherited from FXDrawable
Methods inherited from FXId
#create, #created?, #destroy, #detach, #runOnUiThread
Methods inherited from FXObject
#bind, #handle, #load, #save, subclasses
Constructor Details
#initialize(p, opts = 0, x = 0, y = 0, width = 0, height = 0) ⇒ FXMDIClient
Construct MDI Client window
38 39 |
# File 'rdoc-sources/FXMDIClient.rb', line 38 def initialize(p, opts=0, x=0, y=0, width=0, height=0) # :yields: theMDIClient end |
Instance Attribute Details
#activeChild ⇒ Object
Active MDI child window, or nil
if none Fox::FXMDIChild.
29 30 31 |
# File 'rdoc-sources/FXMDIClient.rb', line 29 def activeChild @activeChild end |
#cascadeX ⇒ Object
Cascade offset X [Integer]
32 33 34 |
# File 'rdoc-sources/FXMDIClient.rb', line 32 def cascadeX @cascadeX end |
#cascadeY ⇒ Object
Cascade offset Y [Integer]
35 36 37 |
# File 'rdoc-sources/FXMDIClient.rb', line 35 def cascadeY @cascadeY end |
Instance Method Details
#forallDocuments(sender, sel, ptr) ⇒ Object
Pass message once to all MDI windows with the same document, stopping when one of the MDI windows fails to handle the message.
51 |
# File 'rdoc-sources/FXMDIClient.rb', line 51 def forallDocuments(sender, sel, ptr); end |
#forallDocWindows(document, sender, sel, ptr) ⇒ Object
Pass message to all MDI Child windows whose target is document, stopping when one of the MDI windows fails to handle the message.
57 |
# File 'rdoc-sources/FXMDIClient.rb', line 57 def forallDocWindows(document, sender, sel, ptr); end |
#forallWindows(sender, sel, ptr) ⇒ Object
Pass message to all MDI windows, stopping when one of the MDI windows fails to handle the message.
45 |
# File 'rdoc-sources/FXMDIClient.rb', line 45 def forallWindows(sender, sel, ptr); end |
#setActiveChild(child = nil, notify = true) ⇒ Object
Set active MDI child window for this MDI client to child.
62 |
# File 'rdoc-sources/FXMDIClient.rb', line 62 def setActiveChild(child=nil, notify=true); end |