Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
module Fox
#
# 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)
#
class FXMDIClient < FXComposite
# Active MDI child window, or +nil+ if none [FXMDIChild].
attr_accessor :activeChild
# Cascade offset X [Integer]
attr_accessor :cascadeX
# Cascade offset Y [Integer]
attr_accessor :cascadeY
# Construct MDI Client window
def initialize(p, opts=0, x=0, y=0, width=0, height=0) # :yields: theMDIClient
end
#
# Pass message to all MDI windows, stopping when one of
# the MDI windows fails to handle the message.
#
def forallWindows(sender, sel, ptr); end
#
# Pass message once to all MDI windows with the same document,
# stopping when one of the MDI windows fails to handle the message.
#
def forallDocuments(sender, sel, ptr); end
#
# Pass message to all MDI Child windows whose target is _document_,
# stopping when one of the MDI windows fails to handle the message.
#
def forallDocWindows(document, sender, sel, ptr); end
#
# Set active MDI child window for this MDI client to _child_.
#
def setActiveChild(child=nil, notify=true); end
end
end