00001
00002
00003
00004
00005
00006
00007
00008
00009
00011
00012 #ifndef _AX_MODULE_BOOK_H_
00013 #define _AX_MODULE_BOOK_H_
00014
00015
00016
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
00041
00042 AxBookResource(const AxBookResource& resource) { Init(); Copy(resource); }
00043 AxBookResource() { Init(); }
00044 ~AxBookResource();
00045
00046
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
00087
00088 AxBookView() { Init(); }
00089 ~AxBookView() {}
00090
00091
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
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
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
00180
00181 protected:
00182 };
00183
00192 class AxBookResourceActivator: public AxResourceActivator
00193 {
00194 public:
00195
00196 DECLARE_DYNAMIC_CLASS( AxBookResourceActivator )
00197
00198 public:
00199
00200
00201 AxBookResourceActivator() { Init(); }
00202 AxBookResourceActivator(const AxBookResourceActivator& activator) { Init(); Copy(activator); }
00203
00204 AxBookResourceActivator(AxResourceLibrary* library, AxResource* resource);
00205 ~AxBookResourceActivator() {}
00206
00207
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
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
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
00280 wxString AxMakeISBNGood(const wxString& isbn);
00281
00282
00283 bool AxIsISBN(const wxString& isbn);
00284
00285 #endif
00286