| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        toplevel.h
 
- // Purpose:     interface of wxTopLevelWindow
 
- // Author:      wxWidgets team
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- /**
 
-     Styles used with wxTopLevelWindow::RequestUserAttention().
 
- */
 
- enum
 
- {
 
-     wxUSER_ATTENTION_INFO = 1,  ///< Requests user attention,
 
-     wxUSER_ATTENTION_ERROR = 2  ///< Results in a more drastic action.
 
- };
 
- /**
 
-     Styles used with wxTopLevelWindow::ShowFullScreen().
 
- */
 
- enum
 
- {
 
-     wxFULLSCREEN_NOMENUBAR   = 0x0001,  ///< Don't display the menu bar.
 
-     wxFULLSCREEN_NOTOOLBAR   = 0x0002,  ///< Don't display toolbar bars.
 
-     wxFULLSCREEN_NOSTATUSBAR = 0x0004,  ///< Don't display the status bar.
 
-     wxFULLSCREEN_NOBORDER    = 0x0008,  ///< Don't display any border.
 
-     wxFULLSCREEN_NOCAPTION   = 0x0010,  ///< Don't display a caption.
 
-     /**
 
-         Combination of all above, will display the least possible.
 
-     */
 
-     wxFULLSCREEN_ALL    = wxFULLSCREEN_NOMENUBAR | wxFULLSCREEN_NOTOOLBAR |
 
-                           wxFULLSCREEN_NOSTATUSBAR | wxFULLSCREEN_NOBORDER |
 
-                           wxFULLSCREEN_NOCAPTION
 
- };
 
- #define wxDEFAULT_FRAME_STYLE (wxSYSTEM_MENU |          \
 
-                                wxRESIZE_BORDER |        \
 
-                                wxMINIMIZE_BOX |         \
 
-                                wxMAXIMIZE_BOX |         \
 
-                                wxCLOSE_BOX |            \
 
-                                wxCAPTION |              \
 
-                                wxCLIP_CHILDREN)
 
- /**
 
-     @class wxTopLevelWindow
 
-     wxTopLevelWindow is a common base class for wxDialog and wxFrame. It is an
 
-     abstract base class meaning that you never work with objects of this class
 
-     directly, but all of its methods are also applicable for the two classes
 
-     above.
 
-     Note that the instances of wxTopLevelWindow are managed by wxWidgets in the
 
-     internal top level window list.
 
-     @beginEventEmissionTable
 
-     @event{EVT_MAXIMIZE(id, func)}
 
-         Process a @c wxEVT_MAXIMIZE event. See wxMaximizeEvent.
 
-     @event{EVT_MOVE(func)}
 
-         Process a @c wxEVT_MOVE event, which is generated when a window is moved.
 
-         See wxMoveEvent.
 
-     @event{EVT_MOVE_START(func)}
 
-         Process a @c wxEVT_MOVE_START event, which is generated when the user starts
 
-         to move or size a window. wxMSW only.
 
-         See wxMoveEvent.
 
-     @event{EVT_MOVE_END(func)}
 
-         Process a @c wxEVT_MOVE_END event, which is generated when the user stops
 
-         moving or sizing a window. wxMSW only.
 
-         See wxMoveEvent.
 
-     @event{EVT_SHOW(func)}
 
-         Process a @c wxEVT_SHOW event. See wxShowEvent.
 
-     @endEventTable
 
-     @library{wxcore}
 
-     @category{managedwnd}
 
-     @see wxDialog, wxFrame
 
- */
 
- class wxTopLevelWindow : public wxNonOwnedWindow
 
- {
 
- public:
 
-     /**
 
-         Default ctor.
 
-     */
 
-     wxTopLevelWindow();
 
-     /**
 
-         Constructor creating the top level window.
 
-     */
 
-     wxTopLevelWindow(wxWindow *parent,
 
-                     wxWindowID id,
 
-                     const wxString& title,
 
-                     const wxPoint& pos = wxDefaultPosition,
 
-                     const wxSize& size = wxDefaultSize,
 
-                     long style = wxDEFAULT_FRAME_STYLE,
 
-                     const wxString& name = wxFrameNameStr);
 
-     /**
 
-         Destructor. Remember that wxTopLevelWindows do not get immediately
 
-         destroyed when the user (or the app) closes them; they have a
 
-         @b delayed destruction.
 
-         See @ref overview_windowdeletion for more info.
 
-     */
 
-     virtual ~wxTopLevelWindow();
 
-     /**
 
-         Creates the top level window.
 
-     */
 
-     bool Create(wxWindow *parent,
 
-                 wxWindowID id,
 
-                 const wxString& title,
 
-                 const wxPoint& pos = wxDefaultPosition,
 
-                 const wxSize& size = wxDefaultSize,
 
-                 long style = wxDEFAULT_FRAME_STYLE,
 
-                 const wxString& name = wxFrameNameStr);
 
-     /**
 
-         Returns @true if the platform supports making the window translucent.
 
-         @see SetTransparent()
 
-     */
 
-     virtual bool CanSetTransparent();
 
-     /**
 
-         A synonym for CentreOnScreen().
 
-     */
 
-     void CenterOnScreen(int direction = wxBOTH);
 
-     /**
 
-         Centres the window on screen.
 
-         @param direction
 
-             Specifies the direction for the centering. May be @c wxHORIZONTAL,
 
-             @c wxVERTICAL or @c wxBOTH.
 
-         @see wxWindow::CentreOnParent()
 
-     */
 
-     void CentreOnScreen(int direction = wxBOTH);
 
-     /**
 
-         Enables or disables the Close button (most often in the right upper
 
-         corner of a dialog) and the Close entry of the system menu (most often
 
-         in the left upper corner of the dialog).
 
-         Currently only implemented for wxMSW and wxGTK.
 
-         Returns @true if operation was successful. This may be wrong on X11
 
-         (including GTK+) where the window manager may not support this operation
 
-         and there is no way to find out.
 
-     */
 
-     virtual bool EnableCloseButton(bool enable = true);
 
-     /**
 
-         Returns a pointer to the button which is the default for this window, or
 
-         @c @NULL. The default button is the one activated by pressing the Enter
 
-         key.
 
-     */
 
-     wxWindow* GetDefaultItem() const;
 
-     /**
 
-         Get the default size for a new top level window.
 
-         This is used internally by wxWidgets on some platforms to determine the
 
-         default size for a window created using ::wxDefaultSize so it is not
 
-         necessary to use it when creating a wxTopLevelWindow, however it may be
 
-         useful if a rough estimation of the window size is needed for some
 
-         other reason.
 
-         @since 2.9.2
 
-      */
 
-     static wxSize GetDefaultSize();
 
-     /**
 
-         Returns the standard icon of the window. The icon will be invalid if it
 
-         hadn't been previously set by SetIcon().
 
-         @see GetIcons()
 
-     */
 
-     wxIcon GetIcon() const;
 
-     /**
 
-         Returns all icons associated with the window, there will be none of them
 
-         if neither SetIcon() nor SetIcons() had been called before. Use
 
-         GetIcon() to get the main icon of the window.
 
-         @see wxIconBundle
 
-     */
 
-     const wxIconBundle& GetIcons() const;
 
-     /**
 
-         Gets a string containing the window title.
 
-         @see SetTitle()
 
-     */
 
-     virtual wxString GetTitle() const;
 
-     /**
 
-         Unique to the wxWinCE port. Responds to showing/hiding SIP (soft input
 
-         panel) area and resize window accordingly. Override this if you want to
 
-         avoid resizing or do additional operations.
 
-     */
 
-     virtual bool HandleSettingChange(WXWPARAM wParam,
 
-                                      WXLPARAM lParam);
 
-     /**
 
-         Iconizes or restores the window.
 
-         @param iconize
 
-             If @true, iconizes the window; if @false, shows and restores it.
 
-         @see IsIconized(), Maximize(), wxIconizeEvent.
 
-     */
 
-     virtual void Iconize(bool iconize = true);
 
-     /**
 
-         Returns @true if this window is currently active, i.e.\ if the user is
 
-         currently working with it.
 
-     */
 
-     virtual bool IsActive();
 
-     /**
 
-         Returns @true if this window is expected to be always maximized, either
 
-         due to platform policy or due to local policy regarding particular
 
-         class.
 
-     */
 
-     virtual bool IsAlwaysMaximized() const;
 
-     /**
 
-         Returns @true if the window is in fullscreen mode.
 
-         @see ShowFullScreen()
 
-     */
 
-     virtual bool IsFullScreen() const;
 
-     /**
 
-         Returns @true if the window is iconized.
 
-     */
 
-     virtual bool IsIconized() const;
 
-     /**
 
-         Returns @true if the window is maximized.
 
-     */
 
-     virtual bool IsMaximized() const;
 
-     /**
 
-         This method is specific to wxUniversal port.
 
-         Returns @true if this window is using native decorations, @false if we
 
-         draw them ourselves.
 
-         @see UseNativeDecorations(),
 
-              UseNativeDecorationsByDefault()
 
-     */
 
-     bool IsUsingNativeDecorations() const;
 
-     /**
 
-         See wxWindow::SetAutoLayout(): when auto layout is on, this function gets
 
-         called automatically when the window is resized.
 
-     */
 
-     virtual bool Layout();
 
-     /**
 
-         Maximizes or restores the window.
 
-         @param maximize
 
-             If @true, maximizes the window, otherwise it restores it.
 
-         @see Iconize()
 
-     */
 
-     virtual void Maximize(bool maximize = true);
 
-     /**
 
-         MSW-specific function for accessing the system menu.
 
-         Returns a wxMenu pointer representing the system menu of the window
 
-         under MSW. The returned wxMenu may be used, if non-@c NULL, to add
 
-         extra items to the system menu. The usual @c wxEVT_MENU
 
-         events (that can be processed using @c EVT_MENU event table macro) will
 
-         then be generated for them. All the other wxMenu methods may be used as
 
-         well but notice that they won't allow you to access any standard system
 
-         menu items (e.g. they can't be deleted or modified in any way
 
-         currently).
 
-         Notice that because of the native system limitations the identifiers of
 
-         the items added to the system menu must be multiples of 16, otherwise
 
-         no events will be generated for them.
 
-         The returned pointer must @em not be deleted, it is owned by the window
 
-         and will be only deleted when the window itself is destroyed.
 
-         This function is not available in the other ports by design, any
 
-         occurrences of it in the portable code must be guarded by
 
-         @code #ifdef __WXMSW__ @endcode preprocessor guards.
 
-         @since 2.9.3
 
-      */
 
-     wxMenu *MSWGetSystemMenu() const;
 
-     /**
 
-         Use a system-dependent way to attract users attention to the window when
 
-         it is in background.
 
-         @a flags may have the value of either @c ::wxUSER_ATTENTION_INFO
 
-         (default) or @c ::wxUSER_ATTENTION_ERROR which results in a more drastic
 
-         action. When in doubt, use the default value.
 
-         @note This function should normally be only used when the application
 
-               is not already in foreground.
 
-         This function is currently implemented for Win32 where it flashes
 
-         the window icon in the taskbar, and for wxGTK with task bars
 
-         supporting it.
 
-     */
 
-     virtual void RequestUserAttention(int flags = wxUSER_ATTENTION_INFO);
 
-     /**
 
-         Changes the default item for the panel, usually @a win is a button.
 
-         @see GetDefaultItem()
 
-     */
 
-     wxWindow* SetDefaultItem(wxWindow* win);
 
-     
 
-     wxWindow*  SetTmpDefaultItem(wxWindow * win);
 
-     wxWindow* GetTmpDefaultItem() const;
 
-     
 
-     /**
 
-         Sets the icon for this window.
 
-         @param icon
 
-             The wxIcon to associate with this window.
 
-         @remarks The window takes a 'copy' of @a icon, but since it uses
 
-                  reference counting, the copy is very quick. It is safe to
 
-                  delete @a icon after calling this function.
 
-         @note In wxMSW, @a icon must be either 16x16 or 32x32 icon.
 
-         @see wxIcon, SetIcons()
 
-     */
 
-     void SetIcon(const wxIcon& icon);
 
-     /**
 
-         Sets several icons of different sizes for this window: this allows to
 
-         use different icons for different situations (e.g. task switching bar,
 
-         taskbar, window title bar) instead of scaling, with possibly bad looking
 
-         results, the only icon set by SetIcon().
 
-         @param icons
 
-             The icons to associate with this window.
 
-         @note In wxMSW, @a icons must contain a 16x16 or 32x32 icon,
 
-               preferably both.
 
-         @see wxIconBundle
 
-     */
 
-     virtual void SetIcons(const wxIconBundle& icons);
 
-     /**
 
-         Sets action or menu activated by pressing left hardware button on the
 
-         smart phones. Unavailable on full keyboard machines.
 
-         @param id
 
-             Identifier for this button.
 
-         @param label
 
-             Text to be displayed on the screen area dedicated to this hardware
 
-             button.
 
-         @param subMenu
 
-             The menu to be opened after pressing this hardware button.
 
-         @see SetRightMenu().
 
-     */
 
-     void SetLeftMenu(int id = wxID_ANY,
 
-                      const wxString& label = wxEmptyString,
 
-                      wxMenu* subMenu = NULL);
 
-     /**
 
-         A simpler interface for setting the size hints than SetSizeHints().
 
-     */
 
-     virtual void SetMaxSize(const wxSize& size);
 
-     /**
 
-         A simpler interface for setting the size hints than SetSizeHints().
 
-     */
 
-     virtual void SetMinSize(const wxSize& size);
 
-     /**
 
-         Sets action or menu activated by pressing right hardware button on the
 
-         smart phones. Unavailable on full keyboard machines.
 
-         @param id
 
-             Identifier for this button.
 
-         @param label
 
-             Text to be displayed on the screen area dedicated to this hardware
 
-             button.
 
-         @param subMenu
 
-             The menu to be opened after pressing this hardware button.
 
-         @see SetLeftMenu().
 
-     */
 
-     void SetRightMenu(int id = wxID_ANY,
 
-                       const wxString& label = wxEmptyString,
 
-                       wxMenu* subMenu = NULL);
 
-     /**
 
-         Allows specification of minimum and maximum window sizes, and window
 
-         size increments. If a pair of values is not set (or set to -1), no
 
-         constraints will be used.
 
-         @param minW
 
-             The minimum width.
 
-         @param minH
 
-             The minimum height.
 
-         @param maxW
 
-             The maximum width.
 
-         @param maxH
 
-             The maximum height.
 
-         @param incW
 
-             Specifies the increment for sizing the width (GTK/Motif/Xt only).
 
-         @param incH
 
-             Specifies the increment for sizing the height (GTK/Motif/Xt only).
 
-         @remarks Notice that this function not only prevents the user from
 
-                  resizing the window outside the given bounds but it also
 
-                  prevents the program itself from doing it using
 
-                  wxWindow::SetSize().
 
-     */
 
-     virtual void SetSizeHints(int minW, int minH,
 
-                               int maxW = -1, int maxH = -1,
 
-                               int incW = -1, int incH = -1);
 
-     /**
 
-         Allows specification of minimum and maximum window sizes, and window
 
-         size increments. If a pair of values is not set (or set to -1), no
 
-         constraints will be used.
 
-         @param minSize
 
-             The minimum size of the window.
 
-         @param maxSize
 
-             The maximum size of the window.
 
-         @param incSize
 
-             Increment size (only taken into account under X11-based ports such
 
-             as wxGTK/wxMotif/wxX11).
 
-         @remarks Notice that this function not only prevents the user from
 
-                  resizing the window outside the given bounds but it also
 
-                  prevents the program itself from doing it using
 
-                  wxWindow::SetSize().
 
-     */
 
-     void SetSizeHints(const wxSize& minSize,
 
-                       const wxSize& maxSize = wxDefaultSize,
 
-                       const wxSize& incSize = wxDefaultSize);
 
-     /**
 
-         Sets the window title.
 
-         @param title
 
-             The window title.
 
-         @see GetTitle()
 
-     */
 
-     virtual void SetTitle(const wxString& title);
 
-     /**
 
-         If the platform supports it will set the window to be translucent.
 
-         @param alpha
 
-             Determines how opaque or transparent the window will be, if the
 
-             platform supports the operation. A value of 0 sets the window to be
 
-             fully transparent, and a value of 255 sets the window to be fully
 
-             opaque.
 
-     */
 
-     virtual bool SetTransparent(wxByte alpha);
 
-     /**
 
-         This virtual function is not meant to be called directly but can be
 
-         overridden to return @false (it returns @true by default) to allow the
 
-         application to close even if this, presumably not very important, window
 
-         is still opened. By default, the application stays alive as long as
 
-         there are any open top level windows.
 
-     */
 
-     virtual bool ShouldPreventAppExit() const;
 
-     
 
-     /**
 
-         This function sets the wxTopLevelWindow's modified state on OS X,
 
-         which currently draws a black dot in the wxTopLevelWindow's close button.
 
-         On other platforms, this method does nothing.
 
-         
 
-         @see OSXIsModified()
 
-     */
 
-     virtual void OSXSetModified(bool modified);
 
-     
 
-     /**
 
-         Returns the current modified state of the wxTopLevelWindow on OS X.
 
-         On other platforms, this method does nothing.
 
-         
 
-         @see OSXSetModified()
 
-     */
 
-     virtual bool OSXIsModified() const;
 
-     /**
 
-         Sets the file name represented by this wxTopLevelWindow.
 
-         Under OS X, this file name is used to set the "proxy icon", which
 
-         appears in the window title bar near its title, corresponding to this
 
-         file name. Under other platforms it currently doesn't do anything but
 
-         it is harmless to call it now and it might be implemented to do
 
-         something useful in the future so you're encouraged to use it for any
 
-         window representing a file-based document.
 
-         @since 2.9.4
 
-     */
 
-     virtual void SetRepresentedFilename(const wxString& filename);
 
-     /**
 
-         Show the wxTopLevelWindow, but do not give it keyboard focus. This can be
 
-         used for pop up or notification windows that should not steal the current
 
-         focus.
 
-      */
 
-     virtual void ShowWithoutActivating();
 
-     
 
-     /**
 
-         Depending on the value of @a show parameter the window is either shown
 
-         full screen or restored to its normal state. @a style is a bit list
 
-         containing some or all of the following values, which indicate what
 
-         elements of the window to hide in full-screen mode:
 
-         - @c ::wxFULLSCREEN_NOMENUBAR
 
-         - @c ::wxFULLSCREEN_NOTOOLBAR
 
-         - @c ::wxFULLSCREEN_NOSTATUSBAR
 
-         - @c ::wxFULLSCREEN_NOBORDER
 
-         - @c ::wxFULLSCREEN_NOCAPTION
 
-         - @c ::wxFULLSCREEN_ALL (all of the above)
 
-         This function has not been tested with MDI frames.
 
-         @note Showing a window full screen also actually @ref wxWindow::Show()
 
-               "Show()"s the window if it isn't shown.
 
-         @see IsFullScreen()
 
-     */
 
-     virtual bool ShowFullScreen(bool show, long style = wxFULLSCREEN_ALL);
 
-     /**
 
-         This method is specific to wxUniversal port.
 
-         Use native or custom-drawn decorations for this window only. Notice that
 
-         to have any effect this method must be called before really creating the
 
-         window, i.e. two step creation must be used:
 
-         @code
 
-         MyFrame *frame = new MyFrame;       // use default ctor
 
-         frame->UseNativeDecorations(false); // change from default "true"
 
-         frame->Create(parent, title, ...);  // really create the frame
 
-         @endcode
 
-         @see UseNativeDecorationsByDefault(),
 
-              IsUsingNativeDecorations()
 
-     */
 
-     void UseNativeDecorations(bool native = true);
 
-     /**
 
-         This method is specific to wxUniversal port.
 
-         Top level windows in wxUniversal port can use either system-provided
 
-         window decorations (i.e. title bar and various icons, buttons and menus
 
-         in it) or draw the decorations themselves. By default the system
 
-         decorations are used if they are available, but this method can be
 
-         called with @a native set to @false to change this for all windows
 
-         created after this point.
 
-         Also note that if @c WXDECOR environment variable is set, then custom
 
-         decorations are used by default and so it may make sense to call this
 
-         method with default argument if the application can't use custom
 
-         decorations at all for some reason.
 
-         @see UseNativeDecorations()
 
-     */
 
-     void UseNativeDecorationsByDefault(bool native = true);
 
- };
 
 
  |