module Fox # # The MDI child window contains the application work area in a Multiple Document # Interface application. GUI Controls are connected to the MDI child via delegation # through the MDI client, which forwards messages it receives to the active MDI child. # The MDI child itself tries to further delegate messages to its single content window, # and if not handled there, to its target object. # When the MDI child is maximized, it sends a SEL_MAXIMIZE message; when the MDI # child is minimized, it sends a SEL_MINIMIZE message. When it is restored, it # sends a SEL_RESTORE message to its target. The MDI child also notifies its # target when it becomes the active MDI child, via the SEL_SELECTED message. # The void* in the SEL_SELECTED message refers to the previously active MDI child, # if any. When an MDI child ceases to be the active one, a SEL_DESELECTED message # is sent. The void* in the SEL_DESELECTED message refers to the newly activated # MDI child, if any. Thus, interception of SEL_SELECTED and SEL_DESELECTED allows # the target object to determine whether the user switched between MDI windows of # the same document (target) or between MDI windows belonging to the same document. # When the MDI child is closed, it sends a SEL_CLOSE message to its target. # The target has an opportunity to object to the closing; if the MDI child should # not be closed, it should return 1 (objection). If the MDI child should be closed, # the target can either just return 0 or simply not handle the SEL_CLOSE message. # The SEL_UPDATE message can be used to modify the MDI child's title (via # ID_SETSTRINGVALUE), and window icon (via ID_SETICONVALUE). # # === Events # # The following messages are sent by FXMDIChild to its target: # # +SEL_LEFTBUTTONPRESS+:: sent when the left mouse button goes down; the message data is an FXEvent instance. # +SEL_LEFTBUTTONRELEASE+:: sent when the left mouse button goes up; the message data is an FXEvent instance. # +SEL_MIDDLEBUTTONPRESS+:: sent when the middle mouse button goes down; the message data is an FXEvent instance. # +SEL_MIDDLEBUTTONRELEASE+:: sent when the middle mouse button goes up; the message data is an FXEvent instance. # +SEL_RIGHTBUTTONPRESS+:: sent when the right mouse button goes down; the message data is an FXEvent instance. # +SEL_RIGHTBUTTONRELEASE+:: sent when the right mouse button goes up; the message data is an FXEvent instance. # +SEL_SELECTED+:: # sent when the window is selected; the message data is a reference to the MDI client's previous active # child window, or +nil+ if there was no active child window. # +SEL_DESELECTED+:: # sent when the window is deselected; the message data is a reference to the MDI client's new active child window, # or +nil+ if there is no active child window. # +SEL_MAXIMIZE+:: sent when the window is maximized # +SEL_MINIMIZE+:: sent when the window is minimized # +SEL_RESTORE+:: sent when the window is restored to its normal size and position # +SEL_CLOSE+:: # sent when the user is trying to close this window. The message handler for this message should # return 1 (or true) if the target objects to closing the window; otherwise it should just return false (or zero). # +SEL_DELETE+:: sent immediately before this window is destroyed # # === MDI Child Window styles # # +MDI_NORMAL+:: Normal display mode # +MDI_MAXIMIZED+:: Window appears maximized # +MDI_MINIMIZED+:: Window is iconified or minimized # +MDI_TRACKING+:: Track continuously during dragging # class FXMDIChild < FXComposite # Normal (restored) position x-coordinate [Integer] attr_accessor :normalX # Normal (restored) position y-coordinate [Integer] attr_accessor :normalY # Normal (restored) width [Integer] attr_accessor :normalWidth # Normal (restored) height [Integer] attr_accessor :normalHeight # Iconified position x-coordinate [Integer] attr_accessor :iconX # Iconified position y-coordinate [Integer] attr_accessor :iconY # Iconified width [Integer] attr_accessor :iconWidth # Iconified height [Integer] attr_accessor :iconHeight # Content window [FXWindow] attr_reader :contentWindow # Window title [String] attr_accessor :title # Highlight color [FXColor] attr_accessor :hiliteColor # Shadow color [FXColor] attr_accessor :shadowColor # Base color [FXColor] attr_accessor :baseColor # Border color [FXColor] attr_accessor :borderColor # Title color [FXColor] attr_accessor :titleColor # Title background color [FXColor] attr_accessor :titleBackColor # Window icon [FXIcon] attr_accessor :icon # Window menu [FXPopup] attr_accessor :menu # Title font [FXFont] attr_accessor :font # Construct MDI Child window with given name and icon def initialize(p, name, ic=nil, pup=nil, opts=0, x=0, y=0, width=0, height=0) # :yields: theMDIChild end # # Minimize this window. # If _notify_ is +true+, ... # def minimize(notify=false); end # # Maximize this window. # If _notify_ is +true+, ... # def maximize(notify=false); end # # Restore this window to its normal position and size. # If _notify_ is +true+, ... # def restore(notify=false); end # Return +true+ if maximized def maximized? ; end # Return +true+ if minimized def minimized? ; end # Set tracking instead of just outline def setTracking(tracking); end alias tracking= setTracking # Return +true+ if tracking, +false+ otherwise. def getTracking(); end alias isTracking? getTracking alias tracking getTracking end end