176 bool RenderAllCanvasOverlayPlugIns(
ocpnDC& dc,
const ViewPort& vp,
177 int canvasIndex,
int priority);
178 bool RenderAllGLCanvasOverlayPlugIns(wxGLContext* pcontext,
179 const ViewPort& vp,
int canvasIndex,
182 void SendViewPortToRequestingPlugIns(
ViewPort& vp);
183 void PrepareAllPluginContextMenus();
185 void NotifySetupOptions();
187 void CloseAllPlugInPanels(
int);
189 ArrayOfPlugInToolbarTools& GetPluginToolbarToolArray() {
190 return m_PlugInToolbarTools;
192 int AddToolbarTool(wxString label, wxBitmap* bitmap, wxBitmap* bmpRollover,
193 wxItemKind kind, wxString shortHelp, wxString longHelp,
194 wxObject* clientData,
int position,
int tool_sel,
197 void RemoveToolbarTool(
int tool_id);
198 void SetToolbarToolViz(
int tool_id,
bool viz);
199 void SetToolbarItemState(
int tool_id,
bool toggle);
200 void SetToolbarItemBitmaps(
int item, wxBitmap* bitmap, wxBitmap* bmpDisabled);
202 int AddToolbarTool(wxString label, wxString SVGfile, wxString SVGRolloverfile,
203 wxString SVGToggledfile, wxItemKind kind,
204 wxString shortHelp, wxString longHelp,
205 wxObject* clientData,
int position,
int tool_sel,
208 void SetToolbarItemBitmaps(
int item, wxString SVGfile,
209 wxString SVGfileRollover, wxString SVGfileToggled);
212 wxString GetToolOwnerCommonName(
const int id);
213 void ShowDeferredBlacklistMessages();
215 ArrayOfPlugInMenuItems& GetPluginContextMenuItemArray() {
216 return m_PlugInMenuItems;
218 int AddCanvasContextMenuItemPIM(wxMenuItem* pitem,
opencpn_plugin* pplugin,
219 const char* name =
"",
220 bool is_extended =
false);
221 void RemoveCanvasContextMenuItem(
int item,
const char* name =
"");
222 void SetCanvasContextMenuItemViz(
int item,
bool viz,
const char* name =
"");
223 void SetCanvasContextMenuItemGrey(
int item,
bool grey,
const char* name =
"");
225 bool UpDateChartDataTypes();
226 void FinalizePluginLoadall();
229 void SendResizeEventToAllPlugIns(
int x,
int y);
230 void SetColorSchemeForAllPlugIns(ColorScheme cs);
231 void NotifyAuiPlugIns(
void);
232 bool CallLateInit(
void);
234 bool IsAnyPlugInChartEnabled();
236 void SendBaseConfigToAllPlugIns();
237 void SendS52ConfigToAllPlugIns(
bool bReconfig =
false);
238 void SendSKConfigToAllPlugIns();
240 void UpdateManagedPlugins();
243 void InitCommListeners(
void);
251 void HandleN0183(std::shared_ptr<const Nmea0183Msg> n0183_msg);
259 void HandleSignalK(std::shared_ptr<const SignalkMsg> sK_msg);
261 wxArrayString GetPlugInChartClassNameArray(
void);
264 float zlat,
float zlon,
268 ListOfPI_S57Obj* rule_list);
270 wxString GetLastError();
271 MyFrame* GetParentFrame() {
return pParent; }
273 void DimeWindow(wxWindow* win);
277 ListOfPI_S57Obj* GetLightsObjRuleListVisibleAtLatLon(
281 bool CheckBlacklistedPlugin(wxString name,
int major,
int minor);
283 void OnNewMessageType();
304 std::unordered_map<std::string, ObsListener> m_0183_listeners;
306 wxBitmap* BuildDimmedToolBitmap(wxBitmap* pbmp_normal,
307 unsigned char dim_ratio);
311 void HandlePluginLoaderEvents();
312 void HandlePluginHandlerEvents();
315 std::unique_ptr<BlacklistUI> m_blacklist_ui;
317 wxString m_last_error_string;
319 ArrayOfPlugInMenuItems m_PlugInMenuItems;
320 ArrayOfPlugInToolbarTools m_PlugInToolbarTools;
322 wxString m_plugin_location;
324 int m_plugin_tool_id_next;
325 int m_plugin_menu_item_id_next;
326 wxBitmap m_cached_overlay_bm;
328 wxArrayString m_plugin_order;
329 void SetPluginOrder(wxString serialized_names);
330 wxString GetPluginOrder();
334 std::unique_ptr<AbstractBlacklist> m_blacklist;
336#ifndef __OCPN__ANDROID__
340 wxCurlDownloadThread* m_pCurlThread;
342 std::shared_ptr<wxCurlBase> m_pCurl;
345 bool HandleCurlThreadError(wxCurlThreadError err, wxCurlBaseThread* p,
346 const wxString& url = wxEmptyString);
347 void OnEndPerformCurlDownload(wxCurlEndPerformEvent& ev);
348 void OnCurlDownload(wxCurlDownloadEvent& ev);
350 wxEvtHandler* m_download_evHandler;
351 long* m_downloadHandle;
353 long m_last_online_chk;
357 DECLARE_EVENT_TABLE()
449 DECLARE_EVENT_TABLE()
454 PluginPanel(wxPanel* parent, wxWindowID
id,
const wxPoint& pos,
458 PluginPanel(wxPanel* parent, wxWindowID
id,
const wxPoint& pos,
462 PluginPanel(wxPanel* parent,
const std::string& name);
466 void OnPluginSelected(wxMouseEvent& event);
467 void OnPluginSelectedUp(wxMouseEvent& event);
468 void DoPluginSelect();
470 void SetSelected(
bool selected);
471 void OnPluginPreferences(wxCommandEvent& event);
472 void OnPluginEnableToggle(wxCommandEvent& event);
473 void OnPluginAction(wxCommandEvent& event);
474 void OnPluginUninstall(wxCommandEvent& event);
475 void OnPluginUp(wxCommandEvent& event);
476 void OnPluginDown(wxCommandEvent& event);
477 void SetEnabled(
bool enabled);
478 bool GetSelected() {
return m_bSelected; }
479 const PlugInData* GetPluginPtr() {
return &m_plugin; };
480 void SetActionLabel(wxString& label);
481 ActionVerb GetAction() {
return m_action; }
482 const PlugInData* GetPlugin() {
return &m_plugin; }
483 void OnPaint(wxPaintEvent& event);
489 wxStaticText* m_pName;
490 wxStaticText* m_pVersion;
491 wxStaticText* m_pDescription;
492 wxBoxSizer* m_pButtons;
493 wxStaticBitmap* m_itemStaticBitmap;
494 wxStaticBitmap* m_itemStatusIconBitmap;
495 wxButton* m_pButtonPreferences;
496 wxButton *m_pButtonAction, *m_pButtonUninstall;
498 wxCheckBox* m_cbEnable;
501 int m_penWidthUnselected, m_penWidthSelected;
502 bool m_is_safe_panel;