[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [6546] Refactor, eliminating public virtuals
From: |
Greg Chicares |
Subject: |
[lmi-commits] [6546] Refactor, eliminating public virtuals |
Date: |
Thu, 07 Apr 2016 23:10:12 +0000 |
Revision: 6546
http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=6546
Author: chicares
Date: 2016-04-07 23:10:11 +0000 (Thu, 07 Apr 2016)
Log Message:
-----------
Refactor, eliminating public virtuals
Modified Paths:
--------------
lmi/trunk/census_view.cpp
lmi/trunk/census_view.hpp
lmi/trunk/database_view.cpp
lmi/trunk/database_view.hpp
lmi/trunk/gpt_view.cpp
lmi/trunk/gpt_view.hpp
lmi/trunk/illustration_view.cpp
lmi/trunk/illustration_view.hpp
lmi/trunk/mec_view.cpp
lmi/trunk/mec_view.hpp
lmi/trunk/policy_view.cpp
lmi/trunk/policy_view.hpp
lmi/trunk/rounding_view.cpp
lmi/trunk/rounding_view.hpp
lmi/trunk/text_view.cpp
lmi/trunk/text_view.hpp
lmi/trunk/tier_view.cpp
lmi/trunk/tier_view.hpp
lmi/trunk/view_ex.cpp
lmi/trunk/view_ex.hpp
Modified: lmi/trunk/census_view.cpp
===================================================================
--- lmi/trunk/census_view.cpp 2016-03-31 09:56:25 UTC (rev 6545)
+++ lmi/trunk/census_view.cpp 2016-04-07 23:10:11 UTC (rev 6546)
@@ -52,7 +52,6 @@
#include <wx/dataview.h>
#include <wx/datectrl.h>
-#include <wx/icon.h>
#include <wx/menu.h>
#include <wx/msgdlg.h>
#include <wx/settings.h>
@@ -1236,14 +1235,14 @@
}
}
-wxIcon CensusView::Icon() const
+char const* CensusView::icon_xrc_resource() const
{
- return IconFromXmlResource("census_view_icon");
+ return "census_view_icon";
}
-wxMenuBar* CensusView::MenuBar() const
+char const* CensusView::menubar_xrc_resource() const
{
- return MenuBarFromXmlResource("census_view_menu");
+ return "census_view_menu";
}
void CensusView::UponEditCell(wxCommandEvent&)
Modified: lmi/trunk/census_view.hpp
===================================================================
--- lmi/trunk/census_view.hpp 2016-03-31 09:56:25 UTC (rev 6545)
+++ lmi/trunk/census_view.hpp 2016-04-07 23:10:11 UTC (rev 6546)
@@ -66,8 +66,8 @@
// ViewEx required implementation.
virtual wxWindow* CreateChildWindow();
- virtual wxIcon Icon() const;
- virtual wxMenuBar* MenuBar() const;
+ virtual char const* icon_xrc_resource () const;
+ virtual char const* menubar_xrc_resource() const;
void UponAddCell (wxCommandEvent&);
void UponDeleteCells (wxCommandEvent&);
Modified: lmi/trunk/database_view.cpp
===================================================================
--- lmi/trunk/database_view.cpp 2016-03-31 09:56:25 UTC (rev 6545)
+++ lmi/trunk/database_view.cpp 2016-04-07 23:10:11 UTC (rev 6546)
@@ -37,7 +37,6 @@
#include "safely_dereference_as.hpp"
#include "wx_new.hpp"
-#include <wx/icon.h>
#include <wx/sizer.h>
#include <wx/treectrl.h>
#include <wx/window.h>
@@ -218,14 +217,14 @@
tree_ctrl.InvalidateBestSize();
}
-wxIcon DatabaseView::Icon() const
+char const* DatabaseView::icon_xrc_resource() const
{
- return IconFromXmlResource("database_view_icon");
+ return "database_view_icon";
}
-wxMenuBar* DatabaseView::MenuBar() const
+char const* DatabaseView::menubar_xrc_resource() const
{
- return MenuBarFromXmlResource("database_view_menu");
+ return "database_view_menu";
}
DatabaseDocument& DatabaseView::document() const
Modified: lmi/trunk/database_view.hpp
===================================================================
--- lmi/trunk/database_view.hpp 2016-03-31 09:56:25 UTC (rev 6545)
+++ lmi/trunk/database_view.hpp 2016-04-07 23:10:11 UTC (rev 6546)
@@ -48,8 +48,8 @@
private:
// ViewEx required implementation.
- virtual wxIcon Icon() const;
- virtual wxMenuBar* MenuBar() const;
+ virtual char const* icon_xrc_resource () const;
+ virtual char const* menubar_xrc_resource() const;
// ProductEditorView required implementation.
virtual bool IsModified() const;
Modified: lmi/trunk/gpt_view.cpp
===================================================================
--- lmi/trunk/gpt_view.cpp 2016-03-31 09:56:25 UTC (rev 6545)
+++ lmi/trunk/gpt_view.cpp 2016-04-07 23:10:11 UTC (rev 6546)
@@ -38,8 +38,6 @@
#include <wx/html/htmlwin.h>
#include <wx/html/htmprint.h>
-#include <wx/icon.h>
-#include <wx/menu.h>
#include <wx/xrc/xmlres.h>
gpt_mvc_view::gpt_mvc_view()
@@ -126,14 +124,14 @@
);
}
-wxIcon gpt_view::Icon() const
+char const* gpt_view::icon_xrc_resource() const
{
- return IconFromXmlResource("gpt_view_icon");
+ return "gpt_view_icon";
}
-wxMenuBar* gpt_view::MenuBar() const
+char const* gpt_view::menubar_xrc_resource() const
{
- return MenuBarFromXmlResource("gpt_view_menu");
+ return "gpt_view_menu";
}
/// This virtual function calls its base-class namesake explicitly.
Modified: lmi/trunk/gpt_view.hpp
===================================================================
--- lmi/trunk/gpt_view.hpp 2016-03-31 09:56:25 UTC (rev 6545)
+++ lmi/trunk/gpt_view.hpp 2016-04-07 23:10:11 UTC (rev 6546)
@@ -81,8 +81,8 @@
// ViewEx required implementation.
virtual wxWindow* CreateChildWindow();
- virtual wxIcon Icon() const;
- virtual wxMenuBar* MenuBar() const;
+ virtual char const* icon_xrc_resource () const;
+ virtual char const* menubar_xrc_resource() const;
// ViewEx overrides.
virtual bool OnCreate(wxDocument*, long int);
Modified: lmi/trunk/illustration_view.cpp
===================================================================
--- lmi/trunk/illustration_view.cpp 2016-03-31 09:56:25 UTC (rev 6545)
+++ lmi/trunk/illustration_view.cpp 2016-04-07 23:10:11 UTC (rev 6546)
@@ -60,8 +60,6 @@
#include "wx_utility.hpp" // class ClipboardEx
#include <wx/html/htmlwin.h>
-#include <wx/icon.h>
-#include <wx/menu.h>
#include <wx/xrc/xmlres.h>
#include <fstream>
@@ -150,14 +148,14 @@
html_window_->SetPage(FormatSelectedValuesAsHtml(*ledger_values_));
}
-wxIcon IllustrationView::Icon() const
+char const* IllustrationView::icon_xrc_resource() const
{
- return IconFromXmlResource("illustration_view_icon");
+ return "illustration_view_icon";
}
-wxMenuBar* IllustrationView::MenuBar() const
+char const* IllustrationView::menubar_xrc_resource() const
{
- return MenuBarFromXmlResource("illustration_view_menu");
+ return "illustration_view_menu";
}
/// This virtual function calls its base-class namesake explicitly.
Modified: lmi/trunk/illustration_view.hpp
===================================================================
--- lmi/trunk/illustration_view.hpp 2016-03-31 09:56:25 UTC (rev 6545)
+++ lmi/trunk/illustration_view.hpp 2016-04-07 23:10:11 UTC (rev 6546)
@@ -81,8 +81,8 @@
// ViewEx required implementation.
virtual wxWindow* CreateChildWindow();
- virtual wxIcon Icon() const;
- virtual wxMenuBar* MenuBar() const;
+ virtual char const* icon_xrc_resource () const;
+ virtual char const* menubar_xrc_resource() const;
// ViewEx overrides.
virtual bool OnCreate(wxDocument*, long int);
Modified: lmi/trunk/mec_view.cpp
===================================================================
--- lmi/trunk/mec_view.cpp 2016-03-31 09:56:25 UTC (rev 6545)
+++ lmi/trunk/mec_view.cpp 2016-04-07 23:10:11 UTC (rev 6546)
@@ -38,8 +38,6 @@
#include <wx/html/htmlwin.h>
#include <wx/html/htmprint.h>
-#include <wx/icon.h>
-#include <wx/menu.h>
#include <wx/xrc/xmlres.h>
mec_mvc_view::mec_mvc_view()
@@ -126,14 +124,14 @@
);
}
-wxIcon mec_view::Icon() const
+char const* mec_view::icon_xrc_resource() const
{
- return IconFromXmlResource("mec_view_icon");
+ return "mec_view_icon";
}
-wxMenuBar* mec_view::MenuBar() const
+char const* mec_view::menubar_xrc_resource() const
{
- return MenuBarFromXmlResource("mec_view_menu");
+ return "mec_view_menu";
}
/// This virtual function calls its base-class namesake explicitly.
Modified: lmi/trunk/mec_view.hpp
===================================================================
--- lmi/trunk/mec_view.hpp 2016-03-31 09:56:25 UTC (rev 6545)
+++ lmi/trunk/mec_view.hpp 2016-04-07 23:10:11 UTC (rev 6546)
@@ -81,8 +81,8 @@
// ViewEx required implementation.
virtual wxWindow* CreateChildWindow();
- virtual wxIcon Icon() const;
- virtual wxMenuBar* MenuBar() const;
+ virtual char const* icon_xrc_resource () const;
+ virtual char const* menubar_xrc_resource() const;
// ViewEx overrides.
virtual bool OnCreate(wxDocument*, long int);
Modified: lmi/trunk/policy_view.cpp
===================================================================
--- lmi/trunk/policy_view.cpp 2016-03-31 09:56:25 UTC (rev 6545)
+++ lmi/trunk/policy_view.cpp 2016-04-07 23:10:11 UTC (rev 6546)
@@ -32,7 +32,6 @@
#include "policy_document.hpp"
#include "safely_dereference_as.hpp"
-#include <wx/icon.h>
#include <wx/panel.h>
#include <wx/textctrl.h>
#include <wx/window.h>
@@ -91,14 +90,14 @@
return main_panel;
}
-wxIcon PolicyView::Icon() const
+char const* PolicyView::icon_xrc_resource() const
{
- return IconFromXmlResource("policy_view_icon");
+ return "policy_view_icon";
}
-wxMenuBar* PolicyView::MenuBar() const
+char const* PolicyView::menubar_xrc_resource() const
{
- return MenuBarFromXmlResource("policy_view_menu");
+ return "policy_view_menu";
}
PolicyDocument& PolicyView::document() const
Modified: lmi/trunk/policy_view.hpp
===================================================================
--- lmi/trunk/policy_view.hpp 2016-03-31 09:56:25 UTC (rev 6545)
+++ lmi/trunk/policy_view.hpp 2016-04-07 23:10:11 UTC (rev 6546)
@@ -57,8 +57,9 @@
// ViewEx required implementation.
virtual wxWindow* CreateChildWindow();
- virtual wxIcon Icon() const;
- virtual wxMenuBar* MenuBar() const;
+ virtual char const* icon_xrc_resource () const;
+ virtual char const* menubar_xrc_resource() const;
+
// ProductEditorView required implementation.
virtual bool IsModified() const;
virtual void DiscardEdits();
Modified: lmi/trunk/rounding_view.cpp
===================================================================
--- lmi/trunk/rounding_view.cpp 2016-03-31 09:56:25 UTC (rev 6545)
+++ lmi/trunk/rounding_view.cpp 2016-04-07 23:10:11 UTC (rev 6546)
@@ -33,7 +33,6 @@
#include "rounding_view_editor.hpp" // class RoundingButtons
#include "safely_dereference_as.hpp"
-#include <wx/icon.h>
#include <wx/panel.h>
#include <wx/window.h>
#include <wx/xrc/xmlres.h>
@@ -90,14 +89,14 @@
return main_panel;
}
-wxIcon RoundingView::Icon() const
+char const* RoundingView::icon_xrc_resource() const
{
- return IconFromXmlResource("rounding_view_icon");
+ return "rounding_view_icon";
}
-wxMenuBar* RoundingView::MenuBar() const
+char const* RoundingView::menubar_xrc_resource() const
{
- return MenuBarFromXmlResource("rounding_view_menu");
+ return "rounding_view_menu";
}
RoundingDocument& RoundingView::document() const
Modified: lmi/trunk/rounding_view.hpp
===================================================================
--- lmi/trunk/rounding_view.hpp 2016-03-31 09:56:25 UTC (rev 6545)
+++ lmi/trunk/rounding_view.hpp 2016-04-07 23:10:11 UTC (rev 6546)
@@ -56,8 +56,9 @@
// ViewEx required implementation.
virtual wxWindow* CreateChildWindow();
- virtual wxIcon Icon() const;
- virtual wxMenuBar* MenuBar() const;
+ virtual char const* icon_xrc_resource () const;
+ virtual char const* menubar_xrc_resource() const;
+
// ProductEditorView required implementation.
virtual bool IsModified() const;
virtual void DiscardEdits();
Modified: lmi/trunk/text_view.cpp
===================================================================
--- lmi/trunk/text_view.cpp 2016-03-31 09:56:25 UTC (rev 6545)
+++ lmi/trunk/text_view.cpp 2016-04-07 23:10:11 UTC (rev 6546)
@@ -38,9 +38,7 @@
#include "wx_new.hpp"
-#include <wx/icon.h>
#include <wx/log.h>
-#include <wx/menu.h>
#include <wx/textctrl.h>
#include <wx/xrc/xmlres.h>
@@ -68,13 +66,13 @@
);
}
-wxIcon TextEditView::Icon() const
+char const* TextEditView::icon_xrc_resource() const
{
- return IconFromXmlResource("text_view_icon");
+ return "text_view_icon";
}
-wxMenuBar* TextEditView::MenuBar() const
+char const* TextEditView::menubar_xrc_resource() const
{
- return MenuBarFromXmlResource("text_view_menu");
+ return "text_view_menu";
}
Modified: lmi/trunk/text_view.hpp
===================================================================
--- lmi/trunk/text_view.hpp 2016-03-31 09:56:25 UTC (rev 6545)
+++ lmi/trunk/text_view.hpp 2016-04-07 23:10:11 UTC (rev 6546)
@@ -65,8 +65,8 @@
private:
// ViewEx required implementation.
virtual wxWindow* CreateChildWindow();
- virtual wxIcon Icon() const;
- virtual wxMenuBar* MenuBar() const;
+ virtual char const* icon_xrc_resource () const;
+ virtual char const* menubar_xrc_resource() const;
wxTextCtrl* text_window_;
Modified: lmi/trunk/tier_view.cpp
===================================================================
--- lmi/trunk/tier_view.cpp 2016-03-31 09:56:25 UTC (rev 6545)
+++ lmi/trunk/tier_view.cpp 2016-04-07 23:10:11 UTC (rev 6546)
@@ -37,7 +37,6 @@
#include "tier_view_editor.hpp"
#include "wx_new.hpp"
-#include <wx/icon.h>
#include <wx/sizer.h>
#include <wx/treectrl.h>
#include <wx/window.h>
@@ -160,14 +159,14 @@
tree_ctrl.InvalidateBestSize();
}
-wxIcon TierView::Icon() const
+char const* TierView::icon_xrc_resource() const
{
- return IconFromXmlResource("tier_view_icon");
+ return "tier_view_icon";
}
-wxMenuBar* TierView::MenuBar() const
+char const* TierView::menubar_xrc_resource() const
{
- return MenuBarFromXmlResource("tier_view_menu");
+ return "tier_view_menu";
}
bool TierView::IsModified() const
Modified: lmi/trunk/tier_view.hpp
===================================================================
--- lmi/trunk/tier_view.hpp 2016-03-31 09:56:25 UTC (rev 6545)
+++ lmi/trunk/tier_view.hpp 2016-04-07 23:10:11 UTC (rev 6546)
@@ -48,8 +48,8 @@
private:
// ViewEx required implementation.
- virtual wxIcon Icon() const;
- virtual wxMenuBar* MenuBar() const;
+ virtual char const* icon_xrc_resource () const;
+ virtual char const* menubar_xrc_resource() const;
// ProductEditorView required implementation.
virtual bool IsModified() const;
Modified: lmi/trunk/view_ex.cpp
===================================================================
--- lmi/trunk/view_ex.cpp 2016-03-31 09:56:25 UTC (rev 6545)
+++ lmi/trunk/view_ex.cpp 2016-04-07 23:10:11 UTC (rev 6546)
@@ -83,6 +83,11 @@
return safely_dereference_as<wxFrame>(GetFrame());
}
+wxIcon ViewEx::Icon() const
+{
+ return IconFromXmlResource(icon_xrc_resource());
+}
+
/// Elsewhere, the result of wxXmlResource::Get()->LoadX is checked
/// before doing anything with it. However, LoadIcon() returns a
/// reference, not a pointer, because it's a graphics object:
@@ -99,6 +104,11 @@
return icon;
}
+wxMenuBar* ViewEx::MenuBar() const
+{
+ return MenuBarFromXmlResource(menubar_xrc_resource());
+}
+
/// If 'new(wx) wxMenuBar' fails, then the program would crash except
/// for the explicit test below. Use std::exit() instead of wxExit()
/// because wxExit() itself can lead to a crash.
Modified: lmi/trunk/view_ex.hpp
===================================================================
--- lmi/trunk/view_ex.hpp 2016-03-31 09:56:25 UTC (rev 6545)
+++ lmi/trunk/view_ex.hpp 2016-04-07 23:10:11 UTC (rev 6546)
@@ -41,19 +41,15 @@
// seems to obtain.
// Icon() and MenuBar() return types suitable for passing to wx
-// functions SetIcon() and SetMenuBar() respectively. Because they are
-// expected to be loaded from xml resources, the functions could have
-// been made nonvirtual, with a string argument to distinguish view
-// types, and indeed protected functions IconFromXmlResource() and
-// MenuBarFromXmlResource() are provided to encapsulate that work in
-// this class--with the same return types as the wxxrc functions they
+// functions SetIcon() and SetMenuBar() respectively. These nonvirtual
+// functions call virtuals that load XRC resources. Private functions
+// IconFromXmlResource() and MenuBarFromXmlResource() encapsulate that
+// work; they have the same return types as the wxxrc functions they
// call. Thus, notably, MenuBarFromXmlResource() returns a pointer,
// but it never returns a null pointer, which would cause the program
// to crash--instead, it returns a default object if no menubar can be
-// read from an xml resource. The public functions are pure to allow
-// implementation flexibility. For instance, an overrider may contain
-// a static variable to cache xml resources for better responsiveness,
-// or it may use a different approach altogether.
+// read from an XRC resource. SOMEDAY !! Should these public functions
+// cache XRC resources in a static variable for better responsiveness?
// OnCreate() and OnClose() are implemented here because it is not
// anticipated that their essential behavior would differ in client
@@ -95,17 +91,12 @@
public:
ViewEx();
- // TODO ?? Consider making virtuals nonpublic and public functions
- // nonvirtual.
- virtual wxIcon Icon() const = 0;
- virtual wxMenuBar* MenuBar() const = 0;
+ wxIcon Icon () const;
+ wxMenuBar* MenuBar() const;
protected:
virtual ~ViewEx();
- wxIcon IconFromXmlResource(char const*) const;
- wxMenuBar* MenuBarFromXmlResource(char const*) const;
-
wxFrame& FrameWindow() const;
std::string base_filename() const;
@@ -119,8 +110,14 @@
virtual void OnDraw(wxDC*);
private:
+ // Pure virtuals.
virtual wxWindow* CreateChildWindow() = 0;
+ virtual char const* icon_xrc_resource () const = 0;
+ virtual char const* menubar_xrc_resource() const = 0;
+ wxIcon IconFromXmlResource (char const*) const;
+ wxMenuBar* MenuBarFromXmlResource(char const*) const;
+
DocManagerEx& DocManager() const;
DECLARE_ABSTRACT_CLASS(ViewEx)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [6546] Refactor, eliminating public virtuals,
Greg Chicares <=