lmi-commits
[Top][All Lists]
Advanced

[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)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]