include/ax_resource/ax_module_book.h

Go to the documentation of this file.
00001 
00002 // Name:        ax_module_book.h
00003 // Purpose:     [E]Book module classes
00004 // Author:      Julian Smart
00005 // Modified by:
00006 // Created:     2009-03-20
00007 // RCS-ID:
00008 // Copyright:   (c) Julian Smart
00009 // Licence:     New BSD License
00011 
00012 #ifndef _AX_MODULE_BOOK_H_
00013 #define _AX_MODULE_BOOK_H_
00014 
00015 /*
00016  * Includes
00017  */
00018 
00019 #include "ax_resource/ax_resource.h"
00020 #include "ax_resource/ax_activator_resource.h"
00021 #include "ax_resource/ax_module.h"
00022 
00023 class ebBasicInfo;
00024 
00025 class wxTextOutputStream;
00026 
00035 class AxBookResource: public AxResource
00036 {
00037     DECLARE_DYNAMIC_CLASS( AxBookResource )
00038 
00039 public:
00040 // Constructors
00041 
00042     AxBookResource(const AxBookResource& resource) { Init(); Copy(resource); }
00043     AxBookResource() { Init(); }
00044     ~AxBookResource();
00045 
00046 // Operations
00047 
00048     void Init();
00049 
00051     void Copy(const AxBookResource& resource);
00052 
00054     void operator=(const AxBookResource& resource) { Copy(resource); }
00055 
00057     void Copy(const ebBasicInfo& info);
00058 
00060     void operator=(const ebBasicInfo& info) { Copy(info); }
00061 
00063     virtual AxDocument* Clone() const { return new AxBookResource(*this); }
00064 
00066     bool IsEpub() const;
00067 
00068 protected:
00069 
00070 };
00071 
00080 class AxSummaryViewPanel;
00081 class AxBookView: public AxView
00082 {
00083     DECLARE_DYNAMIC_CLASS( AxBookView )
00084 
00085 public:
00086 // Constructors
00087 
00088     AxBookView() { Init(); }
00089     ~AxBookView() {}
00090 
00091 // Operations
00092 
00093     void Init();
00094 
00095     virtual bool Activate(AxViewManager* viewManager, AxDocument* doc);
00096     virtual bool Deactivate(AxViewManager* viewManager);
00097 
00098     virtual bool Initialize(AxViewManager* viewManager);
00099     virtual bool Uninitialize(AxViewManager* viewManager);
00100     
00101     void ShowViewIfInactive();
00102 
00103     AxBookResource* GetResource() const;
00104 
00105     AxSummaryViewPanel* GetViewPanel() const;
00106 
00107     void SetDescription(const wxString& text);
00108 
00109     bool ShowBookDetails(AxBookResource* resource, bool say = true);
00110     bool ShowBookSection(AxBookResource* resource, const wxString& sectionLocation, bool say = true);
00111 
00112     // Remove HTML tags from file, outputting text to stream
00113     bool ConvertHTMLToText(const wxString& filename, wxOutputStream& stream, int options = 0);
00114 
00115 protected:
00116 
00117 };
00118 
00127 class AxBookModule: public AxModule
00128 {
00129 DECLARE_DYNAMIC_CLASS(AxBookModule)
00130 
00131 public:
00133     AxBookModule();
00134 
00136     ~AxBookModule() {}
00137 
00138 // Overridables
00139 
00141     virtual bool OnInit();
00142 
00144     virtual bool OnInitUI();
00145 
00147     virtual void OnExit();
00148 
00150         virtual bool LoadConfig(wxConfigBase& config);
00151 
00153     virtual bool SaveConfig(wxConfigBase& config);
00154 
00157     virtual bool OnCloseMainWindow() { return true; }
00158 
00161     virtual bool OnSearch(const wxString& WXUNUSED(searchString), int WXUNUSED(flags), AxResourceLibrary* WXUNUSED(library)) { return false; }
00162 
00164     virtual bool IsFileSupported(const wxString& filename);
00165 
00167     virtual AxResource* LoadResource(const wxString& filename);
00168 
00171     virtual bool AggregateFiles(AxResourceLibrary* library, wxArrayString& files, bool checkIfFileLoaded);
00172 
00174     virtual AxActivator* CreateActivator(AxResourceLibrary* library, AxResource* resource);
00175 
00177     static bool LoadEpubBookInfo(const wxString& filename, AxBookResource& resource, bool makeThumbnail, const wxSize& thumbnailImageSize, bool& foundCoverImage);
00178 
00179 // Accessors
00180 
00181 protected:
00182 };
00183 
00192 class AxBookResourceActivator: public AxResourceActivator
00193 {
00194 public:
00195     
00196     DECLARE_DYNAMIC_CLASS( AxBookResourceActivator )
00197 
00198 public:
00199 // Constructors
00200 
00201     AxBookResourceActivator() { Init(); }
00202     AxBookResourceActivator(const AxBookResourceActivator& activator) { Init(); Copy(activator); }
00203 
00204     AxBookResourceActivator(AxResourceLibrary* library, AxResource* resource);
00205     ~AxBookResourceActivator() {}
00206 
00207 // Operations
00208 
00209     void Init();
00210 
00211     void Copy(const AxBookResourceActivator& activator);
00212 
00213     virtual AxActivator* Clone() const { return new AxBookResourceActivator(*this); }
00214 
00215     virtual AxMenu* Activate(AxMenuController* controller, AxMenuItem* item);
00216 
00219     virtual bool Reactivate(AxMenuController* controller, AxMenuItem* item);
00220 
00221     AxBookResource* GetBookResource() const;
00222 
00223 protected:
00224 };
00225 
00234 typedef enum 
00235 {
00236     AxBookResourceCommandUnknown,
00237 
00238     AxBookResourceCommandShowSection,
00239     AxBookResourceCommandPlay,
00240     AxBookResourceCommandStop,
00241     AxBookResourceCommandShowDetails,
00242 
00243 } AxBookResourceCommand;
00244 
00245 class AxBookResourceCommandActivator: public AxResourceActivator
00246 {
00247 public:
00248     
00249     DECLARE_DYNAMIC_CLASS( AxBookResourceCommandActivator )
00250 
00251 public:
00252 // Constructors
00253 
00254     AxBookResourceCommandActivator() { Init(); }
00255     AxBookResourceCommandActivator(const AxBookResourceCommandActivator& activator) { Init(); Copy(activator); }
00256 
00257     AxBookResourceCommandActivator(AxBookResourceCommand cmd, AxResourceLibrary* library, AxResource* resource,
00258         const wxString& sectionLocation = wxEmptyString);
00259     ~AxBookResourceCommandActivator() {}
00260 
00261 // Operations
00262 
00263     void Init();
00264 
00265     void Copy(const AxBookResourceCommandActivator& activator);
00266 
00267     virtual AxActivator* Clone() const { return new AxBookResourceCommandActivator(*this); }
00268 
00269     virtual AxMenu* Activate(AxMenuController* controller, AxMenuItem* item);
00270 
00271     AxBookResource* GetBookResource() const;
00272 
00273 protected:
00274     AxBookResourceCommand   m_command;
00275     wxString                m_sectionLocation;
00276 
00277 };
00278 
00279 // Remove redundant symbols from ISBN number
00280 wxString AxMakeISBNGood(const wxString& isbn);
00281 
00282 // Is this a valid ISBN?
00283 bool AxIsISBN(const wxString& isbn);
00284 
00285 #endif
00286     // _AX_MODULE_BOOK_H_

Generated on Wed May 6 19:20:18 2009 for AxTk by  doxygen 1.5.1