Files
wxWidgets/wxPython/wx/py/wxd/Frames.py
2003-11-12 21:34:20 +00:00

520 lines
15 KiB
Python

"""Decorator classes for documentation and shell scripting.
"""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
# These are not the real wxPython classes. These are Python versions
# for documentation purposes. They are also used to apply docstrings
# to the real wxPython classes, which are SWIG-generated wrappers for
# C-language classes.
from Base import Object
import Parameters as wx
from Window import TopLevelWindow, Window
class Frame(TopLevelWindow):
"""A frame is a window whose size and position can (usually) be
changed by the user. It usually has thick borders and a title bar,
and can optionally contain a menu bar, toolbar and status bar. A
frame can contain any window that is not a frame or dialog.
A frame that has a status bar and toolbar created via the
CreateStatusBar/CreateToolBar functions manages these windows, and
adjusts the value returned by GetClientSize to reflect the
remaining size available to application windows.
An application should normally define a CloseEvent handler for the
frame to respond to system close events, for example so that
related data and subwindows can be cleaned up."""
def __init__(self, parent, id, title, pos=wx.DefaultPosition,
size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE,
name=wx.PyFrameNameStr):
"""Create a Frame instance.
parent - The window parent. This may be None. If it is not
None, the frame will always be displayed on top of the parent
window on Windows.
id - The window identifier. It may take a value of -1 to
indicate a default value.
title - The caption to be displayed on the frame's title bar.
pos - The window position. A value of (-1, -1) indicates a
default position, chosen by either the windowing system or
wxWindows, depending on platform.
size - The window size. A value of (-1, -1) indicates a
default size, chosen by either the windowing system or
wxWindows, depending on platform.
style - The window style.
name - The name of the window. This parameter is used to
associate a name with the item, allowing the application user
to set Motif resource values for individual windows."""
pass
def Create(self, parent, id, title, pos=wx.DefaultPosition,
size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE,
name=wx.PyFrameNameStr):
"""Create a Frame instance."""
pass
def Command(self, id):
"""Simulate a menu command; id is a menu item identifier."""
pass
def CreateStatusBar(self, number=1, style=wx.ST_SIZEGRIP, id=-1,
name=wx.PyStatusLineNameStr):
"""Create a status bar at the bottom of frame.
number - The number of fields to create. Specify a value
greater than 1 to create a multi-field status bar.
style - The status bar style. See wx.StatusBar for a list of
valid styles.
id - The status bar window identifier. If -1, an identifier
will be chosen by wxWindows.
name - The status bar window name.
The width of the status bar is the whole width of the frame
(adjusted automatically when resizing), and the height and
text size are chosen by the host windowing system.
By default, the status bar is an instance of wx.StatusBar."""
pass
def CreateToolBar(self, style=wx.NO_BORDER | wx.TB_HORIZONTAL,
id=-1, name=wx.PyToolBarNameStr):
"""Create a toolbar at the top or left of frame.
style - The toolbar style. See wxToolBar for a list of valid
styles.
id - The toolbar window identifier. If -1, an identifier will
be chosen by wxWindows.
name - The toolbar window name.
By default, the toolbar is an instance of wx.ToolBar (which is
defined to be a suitable toolbar class on each platform, such
as wx.ToolBar95).
When a toolbar has been created with this function, or made
known to the frame with wx.Frame.SetToolBar, the frame will
manage the toolbar position and adjust the return value from
wx.Window.GetClientSize to reflect the available space for
application windows."""
pass
def DoGiveHelp(self, text, show):
"""Show help text (typically in the statusbar).
show is False if you are hiding the help, True otherwise.
Meant to be overridden if a derived frame wants to do
something else with help text from menus and etc. The default
implementation simply calls Frame.SetStatusText."""
pass
def GetClientAreaOrigin(self):
"""Return origin of frame client area (in client coordinates).
It may be different from (0, 0) if the frame has a toolbar."""
pass
def GetMenuBar(self):
"""Return menubar currently associated with frame (if any)."""
pass
def GetStatusBar(self):
"""Return status bar currently associated with frame (if any)."""
pass
def GetStatusBarPane(self):
"""Return status bar pane used to display menu/toolbar help."""
pass
def GetToolBar(self):
"""Return toolbar currently associated with frame (if any)."""
pass
def PopStatusText(self, number=0):
"""Redraw status bar with previous status text.
number - The status field (starting from zero)."""
pass
def ProcessCommand(self, id):
"""Process menu command; return True if processed.
id is the menu command identifier."""
pass
def PushStatusText(self, text, number=0):
"""Set status bar text and redraw status bar, remembering
previous text.
text - The text for the status field.
number - The status field (starting from zero).
Use an empty string to clear the status bar."""
pass
def SendSizeEvent(self):
"""Send a dummy size event to the frame forcing it to
reevaluate its children positions. It is sometimes useful to
call this function after adding or deleting a children after
the frame creation or if a child size changes.
Note that if the frame is using either sizers or constraints
for the children layout, it is enough to call Frame.Layout()
directly and this function should not be used in this case."""
pass
def SetMenuBar(self, menubar):
"""Show the menu bar in the frame.
menuBar - The menu bar to associate with the frame.
If the frame is destroyed, the menu bar and its menus will be
destroyed also, so do not delete the menu bar explicitly
(except by resetting the frame's menu bar to another frame or
NULL).
Under Windows, a call to Frame.OnSize is generated, so be sure
to initialize data members properly before calling SetMenuBar.
Note that it is not possible to call this function twice for
the same frame object."""
pass
def SetStatusBar(self, statBar):
"""Associate a status bar with the frame."""
pass
def SetStatusBarPane(self, n):
"""Set the status bar pane used to display menu and toolbar
help. Using -1 disables help display."""
pass
def SetStatusText(self, text, number=0):
"""Set status bar text and redraw status bar.
text - The text for the status field.
number - The status field (starting from zero).
Use an empty string to clear the status bar."""
pass
def SetStatusWidths(self, choices):
"""Sets the widths of the fields in the status bar.
choices - a Python list of integers, each of which is a status
field width in pixels. A value of -1 indicates that the field
is variable width; at least one field must be -1.
The widths of the variable fields are calculated from the
total width of all fields, minus the sum of widths of the
non-variable fields, divided by the number of variable fields."""
pass
def SetToolBar(self, toolbar):
"""Associate a toolbar with the frame."""
pass
class LayoutAlgorithm(Object):
"""LayoutAlgorithm implements layout of subwindows in MDI or SDI
frames. It sends a wx.CalculateLayoutEvent event to children of
the frame, asking them for information about their size. For MDI
parent frames, the algorithm allocates the remaining space to the
MDI client window (which contains the MDI child frames). For SDI
(normal) frames, a 'main' window is specified as taking up the
remaining space.
Because the event system is used, this technique can be applied to
any windows, which are not necessarily 'aware' of the layout
classes. However, you may wish to use wx.SashLayoutWindow for
your subwindows since this class provides handlers for the
required events, and accessors to specify the desired size of the
window. The sash behaviour in the base class can be used,
optionally, to make the windows user-resizable.
LayoutAlgorithm is typically used in IDE (integrated development
environment) applications, where there are several resizable
windows in addition to the MDI client window, or other primary
editing window. Resizable windows might include toolbars, a
project window, and a window for displaying error and warning
messages.
When a window receives an OnCalculateLayout event, it should call
SetRect in the given event object, to be the old supplied
rectangle minus whatever space the window takes up. It should
also set its own size accordingly.
SashLayoutWindow.OnCalculateLayout generates an OnQueryLayoutInfo
event which it sends to itself to determine the orientation,
alignment and size of the window, which it gets from internal
member variables set by the application.
The algorithm works by starting off with a rectangle equal to the
whole frame client area. It iterates through the frame children,
generating OnCalculateLayout events which subtract the window size
and return the remaining rectangle for the next window to process.
It is assumed (by SashLayoutWindow.OnCalculateLayout) that a
window stretches the full dimension of the frame client, according
to the orientation it specifies. For example, a horizontal window
will stretch the full width of the remaining portion of the frame
client area. In the other orientation, the window will be fixed
to whatever size was specified by OnQueryLayoutInfo. An alignment
setting will make the window 'stick' to the left, top, right or
bottom of the remaining client area. This scheme implies that
order of window creation is important. Say you wish to have an
extra toolbar at the top of the frame, a project window to the
left of the MDI client window, and an output window above the
status bar. You should therefore create the windows in this
order: toolbar, output window, project window. This ensures that
the toolbar and output window take up space at the top and bottom,
and then the remaining height in-between is used for the project
window.
LayoutAlgorithm is quite independent of the way in which
OnCalculateLayout chooses to interpret a window's size and
alignment. Therefore you could implement a different window class
with a new OnCalculateLayout event handler, that has a more
sophisticated way of laying out the windows. It might allow
specification of whether stretching occurs in the specified
orientation, for example, rather than always assuming
stretching. (This could, and probably should, be added to the
existing implementation).
The algorithm object does not respond to events, but itself
generates the following events in order to calculate window sizes:
EVT_QUERY_LAYOUT_INFO(func), EVT_CALCULATE_LAYOUT(func)."""
def __init__(self):
"""Create a LayoutAlgorithm instance."""
pass
def LayoutFrame(self, frame, mainWindow=wx.NULL):
"""Lay out the children of a normal frame.
mainWindow is set to occupy the remaining space. This
function simply calls LayoutWindow()."""
pass
def LayoutMDIFrame(self, frame, rect=wx.NULL):
"""Lay out the children of an MDI parent frame.
If rect is non-NULL, the given rectangle will be used as a
starting point instead of the frame's client area.
The MDI client window is set to occupy the remaining space."""
pass
def LayoutWindow(self, parent, mainWindow=wx.NULL):
"""Lay out the children of a normal frame or other window.
mainWindow is set to occupy the remaining space. If this is
not specified, then the last window that responds to a
calculate layout event in query mode will get the remaining
space (that is, a non-query OnCalculateLayout event will not
be sent to this window and the window will be set to the
remaining size)."""
pass
class MDIChildFrame(Frame):
""""""
def __init__(self):
""""""
pass
def Create(self):
""""""
pass
def Activate(self):
""""""
pass
def Maximize(self):
""""""
pass
def Restore(self):
""""""
pass
class MDIClientWindow(Window):
""""""
def __init__(self):
""""""
pass
def Create(self):
""""""
pass
class MDIParentFrame(Frame):
""""""
def __init__(self):
""""""
pass
def Create(self):
""""""
pass
def ActivateNext(self):
""""""
pass
def ActivatePrevious(self):
""""""
pass
def ArrangeIcons(self):
""""""
pass
def Cascade(self):
""""""
pass
def GetActiveChild(self):
""""""
pass
def GetClientWindow(self):
""""""
pass
def GetToolBar(self):
""""""
pass
def Tile(self):
""""""
pass
class MiniFrame(Frame):
""""""
def __init__(self):
""""""
pass
def Create(self):
""""""
pass
class SplashScreen(Frame):
""""""
def __init__(self):
""""""
pass
def GetSplashStyle(self):
""""""
pass
def GetSplashWindow(self):
""""""
pass
def GetTimeout(self):
""""""
pass
class SplashScreenWindow(Window):
""""""
def __init__(self):
""""""
pass
def GetBitmap(self):
""""""
pass
def SetBitmap(self):
""""""
pass
class StatusBar(Window):
""""""
def __init__(self):
""""""
pass
def Create(self):
""""""
pass
def GetBorderX(self):
""""""
pass
def GetBorderY(self):
""""""
pass
def GetFieldRect(self):
""""""
pass
def GetFieldsCount(self):
""""""
pass
def GetStatusText(self):
""""""
pass
def PopStatusText(self):
""""""
pass
def PushStatusText(self):
""""""
pass
def SetFieldsCount(self):
""""""
pass
def SetMinHeight(self):
""""""
pass
def SetStatusText(self):
""""""
pass
def SetStatusWidths(self):
""""""
pass