175 bool RenderAllCanvasOverlayPlugIns(
ocpnDC& dc,
const ViewPort& vp,
176 int canvasIndex,
int priority);
177 bool RenderAllGLCanvasOverlayPlugIns(wxGLContext* pcontext,
178 const ViewPort& vp,
int canvasIndex,
181 void SendViewPortToRequestingPlugIns(
ViewPort& vp);
182 void PrepareAllPluginContextMenus();
184 void NotifySetupOptions();
186 void CloseAllPlugInPanels(
int);
188 ArrayOfPlugInToolbarTools& GetPluginToolbarToolArray() {
189 return m_PlugInToolbarTools;
191 int AddToolbarTool(wxString label, wxBitmap* bitmap, wxBitmap* bmpRollover,
192 wxItemKind kind, wxString shortHelp, wxString longHelp,
193 wxObject* clientData,
int position,
int tool_sel,
196 void RemoveToolbarTool(
int tool_id);
197 void SetToolbarToolViz(
int tool_id,
bool viz);
198 void SetToolbarItemState(
int tool_id,
bool toggle);
199 void SetToolbarItemBitmaps(
int item, wxBitmap* bitmap, wxBitmap* bmpDisabled);
201 int AddToolbarTool(wxString label, wxString SVGfile, wxString SVGRolloverfile,
202 wxString SVGToggledfile, wxItemKind kind,
203 wxString shortHelp, wxString longHelp,
204 wxObject* clientData,
int position,
int tool_sel,
207 void SetToolbarItemBitmaps(
int item, wxString SVGfile,
208 wxString SVGfileRollover, wxString SVGfileToggled);
211 wxString GetToolOwnerCommonName(
const int id);
212 void ShowDeferredBlacklistMessages();
214 ArrayOfPlugInMenuItems& GetPluginContextMenuItemArray() {
215 return m_PlugInMenuItems;
217 int AddCanvasContextMenuItem(wxMenuItem* pitem,
opencpn_plugin* pplugin,
218 const char* name =
"");
219 void RemoveCanvasContextMenuItem(
int item,
const char* name =
"");
220 void SetCanvasContextMenuItemViz(
int item,
bool viz,
const char* name =
"");
221 void SetCanvasContextMenuItemGrey(
int item,
bool grey,
const char* name =
"");
223 bool UpDateChartDataTypes();
224 void FinalizePluginLoadall();
227 void SendResizeEventToAllPlugIns(
int x,
int y);
228 void SetColorSchemeForAllPlugIns(ColorScheme cs);
229 void NotifyAuiPlugIns(
void);
230 bool CallLateInit(
void);
232 bool IsAnyPlugInChartEnabled();
234 void SendBaseConfigToAllPlugIns();
235 void SendS52ConfigToAllPlugIns(
bool bReconfig =
false);
236 void SendSKConfigToAllPlugIns();
238 void UpdateManagedPlugins();
241 void InitCommListeners(
void);
249 void HandleN0183(std::shared_ptr<const Nmea0183Msg> n0183_msg);
257 void HandleSignalK(std::shared_ptr<const SignalkMsg> sK_msg);
259 wxArrayString GetPlugInChartClassNameArray(
void);
262 float zlat,
float zlon,
266 ListOfPI_S57Obj* rule_list);
268 wxString GetLastError();
269 MyFrame* GetParentFrame() {
return pParent; }
271 void DimeWindow(wxWindow* win);
275 ListOfPI_S57Obj* GetLightsObjRuleListVisibleAtLatLon(
279 bool CheckBlacklistedPlugin(wxString name,
int major,
int minor);
300 wxBitmap* BuildDimmedToolBitmap(wxBitmap* pbmp_normal,
301 unsigned char dim_ratio);
305 void HandlePluginLoaderEvents();
306 void HandlePluginHandlerEvents();
309 std::unique_ptr<BlacklistUI> m_blacklist_ui;
311 wxString m_last_error_string;
313 ArrayOfPlugInMenuItems m_PlugInMenuItems;
314 ArrayOfPlugInToolbarTools m_PlugInToolbarTools;
316 wxString m_plugin_location;
318 int m_plugin_tool_id_next;
319 int m_plugin_menu_item_id_next;
320 wxBitmap m_cached_overlay_bm;
322 wxArrayString m_plugin_order;
323 void SetPluginOrder(wxString serialized_names);
324 wxString GetPluginOrder();
328 std::unique_ptr<AbstractBlacklist> m_blacklist;
330#ifndef __OCPN__ANDROID__
334 wxCurlDownloadThread* m_pCurlThread;
336 std::shared_ptr<wxCurlBase> m_pCurl;
339 bool HandleCurlThreadError(wxCurlThreadError err, wxCurlBaseThread* p,
340 const wxString& url = wxEmptyString);
341 void OnEndPerformCurlDownload(wxCurlEndPerformEvent& ev);
342 void OnCurlDownload(wxCurlDownloadEvent& ev);
344 wxEvtHandler* m_download_evHandler;
345 long* m_downloadHandle;
347 long m_last_online_chk;
351 DECLARE_EVENT_TABLE()
443 DECLARE_EVENT_TABLE()
448 PluginPanel(wxPanel* parent, wxWindowID
id,
const wxPoint& pos,
452 PluginPanel(wxPanel* parent, wxWindowID
id,
const wxPoint& pos,
456 PluginPanel(wxPanel* parent,
const std::string& name);
460 void OnPluginSelected(wxMouseEvent& event);
461 void OnPluginSelectedUp(wxMouseEvent& event);
462 void DoPluginSelect();
464 void SetSelected(
bool selected);
465 void OnPluginPreferences(wxCommandEvent& event);
466 void OnPluginEnableToggle(wxCommandEvent& event);
467 void OnPluginAction(wxCommandEvent& event);
468 void OnPluginUninstall(wxCommandEvent& event);
469 void OnPluginUp(wxCommandEvent& event);
470 void OnPluginDown(wxCommandEvent& event);
471 void SetEnabled(
bool enabled);
472 bool GetSelected() {
return m_bSelected; }
473 const PlugInData* GetPluginPtr() {
return &m_plugin; };
474 void SetActionLabel(wxString& label);
475 ActionVerb GetAction() {
return m_action; }
476 const PlugInData* GetPlugin() {
return &m_plugin; }
477 void OnPaint(wxPaintEvent& event);
483 wxStaticText* m_pName;
484 wxStaticText* m_pVersion;
485 wxStaticText* m_pDescription;
486 wxBoxSizer* m_pButtons;
487 wxStaticBitmap* m_itemStaticBitmap;
488 wxStaticBitmap* m_itemStatusIconBitmap;
489 wxButton* m_pButtonPreferences;
490 wxButton *m_pButtonAction, *m_pButtonUninstall;
492 wxCheckBox* m_cbEnable;
495 int m_penWidthUnselected, m_penWidthSelected;
496 bool m_is_safe_panel;