00001
00002
00003
00004
00005
00006
00007
00008
00009
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
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:
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:
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:
00147
00148 bool Load(wxConfigBase *, const wxString &path);
00149 void Save(wxConfigBase *, const wxString &path) const;
00150
00151 bool LoadViewFormats();
00152
00153 protected:
00154
00155 void InitReference();
00156
00157 public:
00158
00159 void OnLinkClicked(wxHtmlLinkEvent &ev);
00160 void OnPageChanged(wxNotebookEvent &ev);
00161
00162 protected:
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:
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