viewerpanel.h

00001 
00002 // Name:        viewerpanel.h
00003 // Purpose:     wxPackageViewerPanel definition
00004 // Author:      Julian Smart, Francesco Montorsi
00005 // Modified by:
00006 // Created:     07/06/2006 00:24:55
00007 // RCS-ID:      $Id: viewerpanel.h,v 1.2 2007/01/01 20:06:20 frm Exp $
00008 // Copyright:   (c) 2004 Francesco Montorsi
00009 // Licence:     wxWidgets license
00011 
00012 #ifndef _PMVIEWERPANEL_H_
00013 #define _PMVIEWERPANEL_H_
00014 
00015 
00020 #include "wx/notebook.h"
00021 #include "wx/html/htmlwin.h"
00022 #include "wxp/package.h"
00023 #include "guipm/taskpanel.h"
00024 
00025 
00030 class wxNotebook;
00031 class wxHtmlWindow;
00032 class wxHtmlHelpController;
00033 class wxHtmlHelpWindow;
00034 class wxWebBrowserWindow;
00035 class wxConfigBase;
00036 
00037 
00042 
00043 #define SYMBOL_WXPACKAGEVIEWERPANEL_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX
00044 #define SYMBOL_WXPACKAGEVIEWERPANEL_TITLE _("Dialog")
00045 #define SYMBOL_WXPACKAGEVIEWERPANEL_IDNAME wxID_ANY
00046 #define SYMBOL_WXPACKAGEVIEWERPANEL_SIZE wxSize(400, 300)
00047 #define SYMBOL_WXPACKAGEVIEWERPANEL_POSITION wxDefaultPosition
00048 #define ID_VIEWER_NOTEBOOK 10024
00049 #define ID_VIEWER_SUMMARY 10027
00050 #define ID_VIEWER_DETAILS 10025
00052 
00053 #ifdef __WXMSW__
00054     #define wxPM_HAS_EMBEDDED_BROWSER   1
00055 #else
00056     #define wxPM_HAS_EMBEDDED_BROWSER   0
00057 #endif
00058 
00059 
00060 
00061 // ----------------------------------------------------------------------------
00062 // wxPackageViewerPanel
00063 // ----------------------------------------------------------------------------
00064 
00065 class wxPackageViewerPanel: public wxPanel
00066 {
00067     DECLARE_DYNAMIC_CLASS( wxPackageViewerPanel )
00068     DECLARE_EVENT_TABLE()
00069 
00070 public:
00072     wxPackageViewerPanel( );
00073     wxPackageViewerPanel( wxWindow* parent, wxWindowID id = SYMBOL_WXPACKAGEVIEWERPANEL_IDNAME, const wxPoint& pos = SYMBOL_WXPACKAGEVIEWERPANEL_POSITION, const wxSize& size = SYMBOL_WXPACKAGEVIEWERPANEL_SIZE, long style = SYMBOL_WXPACKAGEVIEWERPANEL_STYLE );
00074     ~wxPackageViewerPanel();
00075 
00077     bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WXPACKAGEVIEWERPANEL_IDNAME, const wxPoint& pos = SYMBOL_WXPACKAGEVIEWERPANEL_POSITION, const wxSize& size = SYMBOL_WXPACKAGEVIEWERPANEL_SIZE, long style = SYMBOL_WXPACKAGEVIEWERPANEL_STYLE );
00078 
00080     void CreateControls();
00081 
00083     static bool ShowToolTips();
00084 
00085 
00086 public:     // setters
00087 
00088     void SetPackage(const wxPackage &p)
00089         { m_arrPkg.Clear(); m_arrPkg.Add(p); UpdateSummaryAndDesc(); }
00090     void SetPackages(const wxPackageArray &arr)
00091         { m_arrPkg=arr; UpdateSummaryAndDesc(); }
00092 
00093     void UpdateSummaryAndDesc();
00094 
00095     void Reset();
00096 
00097     void SelectSummaryPage()
00098         { m_pNotebook->ChangeSelection(0); }
00099     void SelectDetailsPage()
00100         { m_pNotebook->ChangeSelection(1); }
00101     void SelectReferencePage()
00102         { m_pNotebook->ChangeSelection(2); }
00103 
00104     void SelectDownloadQueuePanel()
00105         { m_pNotebook->ChangeSelection(3); }
00106     void SelectTaskQueuePage()
00107         { m_pNotebook->ChangeSelection(4); }
00108 
00109     void SetViewMode(const wxString &name)
00110     {
00111         m_strViewModeName = name;
00112         m_viewMode = wxPackageInfo::s_hashmapHTMLFormats[name];
00113         wxASSERT(m_viewMode != wxEmptyPackageHTMLOutputFormat);
00114         UpdateSummaryAndDesc();
00115     }
00116 
00117 public:     // getters
00118 
00119     bool IsOk() const;
00120 
00121     wxPackageCommandQueuePanel *GetTaskQueuePanel()
00122         { return m_pTaskQueuePanel; }
00123     wxPackageDownloadQueuePanel *GetDownloadQueuePanel()
00124         { return m_pDownloadQueuePanel; }
00125 
00126     wxHtmlHelpWindow* GetEmbeddedHelpWindow() const
00127         { return m_embeddedHelpWindow ; }
00128     wxHtmlHelpController* GetEmbeddedHelpController() const
00129         { return m_embeddedHelpController ; }
00130 
00131 #if wxPM_HAS_EMBEDDED_BROWSER
00132     void SelectBrowserPage()
00133         { m_pNotebook->ChangeSelection(5); }
00134     wxWebBrowserWindow *GetBrowser()
00135         { return (wxWebBrowserWindow *)m_pNotebook->GetPage(5); }
00136 #endif
00137 
00138     wxPackageHTMLOutputFormat GetViewMode() const
00139         { return m_viewMode; }
00140     wxString GetViewModeName() const
00141         { return m_strViewModeName; }
00142 
00143     wxArrayString &GetDocs()
00144         { return m_arrDocs; }
00145 
00146 public:     // load/save
00147 
00148     bool Load(wxConfigBase *, const wxString &path);
00149     void Save(wxConfigBase *, const wxString &path) const;
00150 
00151     bool LoadViewFormats();
00152 
00153 protected:      // internal utilities
00154 
00155     void InitReference();
00156 
00157 public:     // event handlers
00158 
00159     void OnLinkClicked(wxHtmlLinkEvent &ev);
00160     void OnPageChanged(wxNotebookEvent &ev);
00161 
00162 protected:  // controls
00163 
00164     wxHtmlWindow *m_pSummaryHtmlWin, *m_pDetailsHtmlWin;
00165     wxNotebook* m_pNotebook;
00166 
00167     wxHtmlHelpWindow* m_embeddedHelpWindow;
00168     wxHtmlHelpController* m_embeddedHelpController;
00169 
00170     wxPackageDownloadQueuePanel *m_pDownloadQueuePanel;
00171     wxPackageCommandQueuePanel *m_pTaskQueuePanel;
00172 
00173 protected:  // member variables
00174 
00176     wxArrayString m_arrDocs;
00177 
00179     wxPackageHTMLOutputFormat m_viewMode;
00180     wxString m_strViewModeName;
00181 
00183     wxString m_strDefaultSummary, m_strDefaultDetails;
00184 
00186     wxPackageArray m_arrPkg;
00187 };
00188 
00189 #endif
00190     // _PMVIEWERPANEL_H_

Generated on Thu Feb 1 22:14:31 2007 for wxWidgets Package Manager by  doxygen 1.5.1-p1