The DiagramCommand class is the key to implementing Undo/Redo. Each instance of DiagramCommand
stores enough information about an operation (create, delete, change colour etc.) to allow
-it to carry out (or undo) its command. In DiagramView::OnMenuCommand, when the user initiates the
-command, a new DiagramCommand instance is created which is then sent to the document's
-command processor (see wxWindows manual for more information about doc/view and command
-processing).
+it to carry out (or undo) its command.
Apart from menu commands, another way commands are initiated is by the user left-clicking on
the canvas or right-dragging on a node. MyCanvas::OnLeftClick in view.cpp shows how
public:
wxFrame *frame;
MyCanvas *canvas;
-
+
DiagramView(void) { canvas = NULL; frame = NULL; };
~DiagramView(void) {};
wxShape *FindSelectedShape(void);
-// void OnMenuCommand(int cmd);
-
void OnCut(wxCommandEvent& event);
void OnChangeBackgroundColour(wxCommandEvent& event);
void OnEditLabel(wxCommandEvent& event);
cbSimpleCustomizationPlugin* mpBackRef;
public:
- void OnMenuCommand( wxCommandEvent& evt );
-
void OnCommandEvents( wxCommandEvent& evt );
DECLARE_EVENT_TABLE()
BEGIN_EVENT_TABLE( cbContextMenuHandler, wxEvtHandler )
- // FIXME:: what is the right range for these ids ? so that they
+ // FIXME:: what is the right range for these ids ? so that they
// would not collide with user commands?
EVT_COMMAND_RANGE( CB_CUSTOMIZE_MENU_FIRST_ITEM_ID,
- CB_CUSTOMIZE_MENU_FIRST_ITEM_ID + 300,
- wxEVT_COMMAND_MENU_SELECTED,
+ CB_CUSTOMIZE_MENU_FIRST_ITEM_ID + 300,
+ wxEVT_COMMAND_MENU_SELECTED,
cbContextMenuHandler::OnCommandEvents )
END_EVENT_TABLE()
#if 0
pMenu->AppendSeparator();
pMenu->Append( id, "Customize...", "Show layout customization dialog", false );
-#endif
+#endif
mCustMenuItemId = id;
cbContextMenuHandler* pHandler = new cbContextMenuHandler();
mpLayout->SetBarState( pBar, newState, true );
if ( newState == wxCBAR_FLOATING )
- mpLayout->RepositionFloatedBar( pBar );
+ mpLayout->RepositionFloatedBar( pBar );
}
// menu-item-selected event is "eaten"
}
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Name: tdocview.tex
+%% Purpose: Document/view overview
+%% Author: wxWidgets Team
+%% Modified by:
+%% Created:
+%% RCS-ID: $Id$
+%% Copyright: (c) wxWidgets Team
+%% License: wxWindows license
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
\section{Document/view overview}\label{docviewoverview}
Classes: \helpref{wxDocument}{wxdocument}, \helpref{wxView}{wxview}, \helpref{wxDocTemplate}{wxdoctemplate},\rtfsp
To use the abstract wxView class, you need to derive a new class and override
at least the member functions OnCreate, OnDraw, OnUpdate and OnClose. You will probably
-want to override OnMenuCommand to respond to menu commands from the frame containing the
-view.
+want to respond to menu commands from the frame containing the view.
Use the macros DECLARE\_DYNAMIC\_CLASS and IMPLEMENT\_DYNAMIC\_CLASS in order
to allow the framework to create view objects on demand. When you create
simplified.
wxDocTemplate is part of the document/view framework supported by wxWidgets,
-and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument}
+and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument}
and \helpref{wxDocManager}{wxdocmanager} classes.
See the example application in {\tt samples/docview}.
and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument}\rtfsp
and \helpref{wxDocTemplate}{wxdoctemplate} classes.
-A wxDocManager instance coordinates documents, views and document templates. It keeps a list of document
+A wxDocManager instance coordinates documents, views and document templates. It keeps a list of document
and template instances, and much functionality is routed through this object, such
as providing selection and file dialogs. The application can use this class `as is' or
derive a class and override some members to extend or change the functionality.
appending filenames that are added to the history. Please notice that currently
if the history already contained filenames when UseMenu() is called (e.g. when
initializing a second MDI child frame), the menu is not automatically
-initialized with the existing filenames in the history and so you need to call
+initialized with the existing filenames in the history and so you need to call
\helpref{AddFilesToMenu()}{wxfilehistoryaddfilestomenu} after UseMenu()
explicitly in order to initialize the menu with the existing list of MRU files.
(otherwise an assertion failure is raised in debug builds).
-The filenames are appended using menu identifiers in the range
+The filenames are appended using menu identifiers in the range
\texttt{wxID\_FILE1} to \texttt{wxID\_FILE9}.
In order to respond to a file load command from one of these identifiers,
void wxDocParentFrame::OnMRUFile(wxCommandEvent& event)
{
wxString f(m_docManager->GetHistoryFile(event.GetId() - wxID_FILE1));
- if (f != "")
+ if (!f.empty())
(void)m_docManager->CreateDocument(f, wxDOC_SILENT);
}
\end{verbatim}
To allow communication between the application's menus and the
document/view framework, several command identifiers are predefined for you
-to use in menus. The framework recognizes them and processes them if you
-forward commands from wxFrame::OnMenuCommand (or perhaps from toolbars and
-other user interface constructs).
+to use in menus.
\begin{itemize}\itemsep=0pt
\item wxID\_OPEN (5000)
\item wxID\_PRINT\_SETUP (5011)
\item wxID\_PREVIEW (5012)
\end{itemize}
-
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Name: view.tex
+%% Purpose: wxView documentation
+%% Author: wxWidgets Team
+%% Modified by:
+%% Created:
+%% RCS-ID: $Id$
+%% Copyright: (c) wxWidgets Team
+%% License: wxWindows license
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
\section{\class{wxView}}\label{wxview}
The view class can be used to model the viewing and editing component of
an application's file-based data. It is part of the document/view framework supported by wxWidgets,
-and cooperates with the \helpref{wxDocument}{wxdocument}, \helpref{wxDocTemplate}{wxdoctemplate}
+and cooperates with the \helpref{wxDocument}{wxdocument}, \helpref{wxDocTemplate}{wxdoctemplate}
and \helpref{wxDocManager}{wxdocmanager} classes.
\wxheading{Derived from}
Call this from your view frame's OnActivate member to tell the framework which view is
currently active. If your windowing system doesn't call OnActivate, you may need to
-call this function from OnMenuCommand or any place where you know the view must
+call this function from any place where you know the view must
be active, and the framework will need to get the current view.
-The prepackaged view frame wxDocChildFrame calls wxView::Activate from its OnActivate member
-and from its OnMenuCommand member.
+The prepackaged view frame wxDocChildFrame calls wxView::Activate from its OnActivate member.
This function calls wxView::OnActivateView.
\func{void}{SetViewName}{\param{const wxString\& }{name}}
Sets the view type name. Should only be called by the framework.
-
-
\docparam{parent}{Pointer to a parent window.}
-\docparam{id}{Window identifier. If -1, will automatically create an identifier.}
+\docparam{id}{Window identifier. If wxID\_ANY, will automatically create an identifier.}
\docparam{pos}{Window position. wxDefaultPosition indicates that wxWidgets
should generate a default position for the window. If using the wxWindow class directly, supply
\wxheading{Remarks}
Each window has an integer identifier. If the application has not provided one
-(or the default Id -1) an unique identifier with a negative value will be generated.
+(or the default wxID\_ANY) an unique identifier with a negative value will be generated.
\wxheading{See also}
%%
%% \helpref{wxValidator}{wxvalidator}, \helpref{wxWindow::TransferDataToWindow}{wxwindowtransferdatatowindow}
%%
-%% \membersection{wxWindow::OnMenuCommand}\label{wxwindowonmenucommand}
-%%
-%% \func{void}{OnMenuCommand}{\param{wxCommandEvent\& }{event}}
-%%
-%% Called when a menu command is received from a menu bar.
-%%
-%% \wxheading{Parameters}
-%%
-%% \docparam{event}{The menu command event. For more information, see \helpref{wxCommandEvent}{wxcommandevent}.}
-%%
-%% \wxheading{Remarks}
-%%
-%% A function with this name doesn't actually exist; you can choose any member function to receive
-%% menu command events, using the EVT\_COMMAND macro for individual commands or EVT\_COMMAND\_RANGE for
-%% a range of commands.
-%%
-%% \wxheading{See also}
-%%
-%% \helpref{wxCommandEvent}{wxcommandevent},\rtfsp
-%% \helpref{wxWindow::OnMenuHighlight}{wxwindowonmenuhighlight},\rtfsp
-%% \helpref{Event handling overview}{eventhandlingoverview}
-%%
%% \membersection{wxWindow::OnMenuHighlight}\label{wxwindowonmenuhighlight}
%%
%% \func{void}{OnMenuHighlight}{\param{wxMenuEvent\& }{event}}
%% \wxheading{See also}
%%
%% \helpref{wxMenuEvent}{wxmenuevent},\rtfsp
-%% \helpref{wxWindow::OnMenuCommand}{wxwindowonmenucommand},\rtfsp
%% \helpref{Event handling overview}{eventhandlingoverview}
%%
%%
<A HREF="#wxwindowonkillfocus">wxWindow::OnKillFocus</A><BR>
<A HREF="#wxwindowonidle">wxWindow::OnIdle</A><BR>
<A HREF="#wxwindowoninitdialog">wxWindow::OnInitDialog</A><BR>
-<A HREF="#wxwindowonmenucommand">wxWindow::OnMenuCommand</A><BR>
<A HREF="#wxwindowonmenuhighlight">wxWindow::OnMenuHighlight</A><BR>
<A HREF="#wxwindowonmouseevent">wxWindow::OnMouseEvent</A><BR>
<A HREF="#wxwindowonmove">wxWindow::OnMove</A><BR>
<TD VALIGN=TOP>
Returns a
-4-tuple, (width, height, descent, externalLeading)
+4-tuple, (width, height, descent, externalLeading)
</TD></TR>
<B><FONT COLOR="#FF0000">See also</FONT></B><P>
<A HREF="wx255.htm#wxvalidator">wxValidator</A>, <A HREF="wx260.htm#wxwindowtransferdatatowindow">wxWindow::TransferDataToWindow</A><P>
-<HR>
-<A NAME="wxwindowonmenucommand"></A>
-<H3>wxWindow::OnMenuCommand</H3>
-<P>
-<B>void</B> <B>OnMenuCommand</B>(<B>wxCommandEvent& </B><I>event</I>)<P>
-Called when a menu command is received from a menu bar.<P>
-<B><FONT COLOR="#FF0000">Parameters</FONT></B><P>
-<I>event</I><UL><UL>
-The menu command event. For more information, see <A HREF="wx52.htm#wxcommandevent">wxCommandEvent</A>.</UL></UL>
-<P>
-<B><FONT COLOR="#FF0000">Remarks</FONT></B><P>
-A function with this name doesn't actually exist; you can choose any member function to receive
-menu command events, using the EVT_COMMAND macro for individual commands or EVT_COMMAND_RANGE for
-a range of commands.<P>
-<B><FONT COLOR="#FF0000">See also</FONT></B><P>
-<A HREF="wx52.htm#wxcommandevent">wxCommandEvent</A>,
-<A HREF="wx260.htm#wxwindowonmenuhighlight">wxWindow::OnMenuHighlight</A>,
-<A HREF="wx299.htm#eventhandlingoverview">Event handling overview</A><P>
-
<HR>
<A NAME="wxwindowonmenuhighlight"></A>
<H3>wxWindow::OnMenuHighlight</H3>
since a selection is normally a left-click action.<P>
<B><FONT COLOR="#FF0000">See also</FONT></B><P>
<A HREF="wx143.htm#wxmenuevent">wxMenuEvent</A>,
-<A HREF="wx260.htm#wxwindowonmenucommand">wxWindow::OnMenuCommand</A>,
<A HREF="wx299.htm#eventhandlingoverview">Event handling overview</A><P>
{ public:
wxTextCtrl *textWindow;
MyFrame(wxFrame *frame, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size);
- void OnMenuCommand(int id);
void OnCloseWindow(wxCloseEvent& event);
void OnExit(wxCommandEvent& event);
Call this from your view frame's OnActivate member to tell the
framework which view is currently active. If your windowing system
doesn't call OnActivate, you may need to call this function from
- OnMenuCommand or any place where you know the view must be active, and
+ any place where you know the view must be active, and
the framework will need to get the current view.
The prepackaged view frame wxDocChildFrame calls wxView.Activate from
- its OnActivate member and from its OnMenuCommand member.
+ its OnActivate member.
"""
if self.GetDocument() and self.GetDocumentManager():
self.OnActivateView(activate, self, self.GetDocumentManager().GetCurrentView())