180 bool RenderAllCanvasOverlayPlugIns(
ocpnDC& dc,
const ViewPort& vp,
181 int canvasIndex,
int priority);
182 bool RenderAllGLCanvasOverlayPlugIns(wxGLContext* pcontext,
183 const ViewPort& vp,
int canvasIndex,
186 void SendViewPortToRequestingPlugIns(
ViewPort& vp);
187 void PrepareAllPluginContextMenus();
189 void NotifySetupOptions();
191 void CloseAllPlugInPanels(
int);
193 ArrayOfPlugInToolbarTools& GetPluginToolbarToolArray() {
194 return m_PlugInToolbarTools;
196 int AddToolbarTool(wxString label, wxBitmap* bitmap, wxBitmap* bmpRollover,
197 wxItemKind kind, wxString shortHelp, wxString longHelp,
198 wxObject* clientData,
int position,
int tool_sel,
201 void RemoveToolbarTool(
int tool_id);
202 void SetToolbarToolViz(
int tool_id,
bool viz);
203 void SetToolbarItemState(
int tool_id,
bool toggle);
204 void SetToolbarItemBitmaps(
int item, wxBitmap* bitmap, wxBitmap* bmpDisabled);
206 int AddToolbarTool(wxString label, wxString SVGfile, wxString SVGRolloverfile,
207 wxString SVGToggledfile, wxItemKind kind,
208 wxString shortHelp, wxString longHelp,
209 wxObject* clientData,
int position,
int tool_sel,
212 void SetToolbarItemBitmaps(
int item, wxString SVGfile,
213 wxString SVGfileRollover, wxString SVGfileToggled);
216 wxString GetToolOwnerCommonName(
const int id);
217 void ShowDeferredBlacklistMessages();
219 ArrayOfPlugInMenuItems& GetPluginContextMenuItemArray() {
220 return m_PlugInMenuItems;
222 int AddCanvasContextMenuItemPIM(wxMenuItem* pitem,
opencpn_plugin* pplugin,
223 const char* name =
"",
224 bool is_extended =
false);
225 void RemoveCanvasContextMenuItem(
int item,
const char* name =
"");
226 void SetCanvasContextMenuItemViz(
int item,
bool viz,
const char* name =
"");
227 void SetCanvasContextMenuItemGrey(
int item,
bool grey,
const char* name =
"");
229 bool UpDateChartDataTypes();
230 void FinalizePluginLoadall();
233 void SendResizeEventToAllPlugIns(
int x,
int y);
234 void SetColorSchemeForAllPlugIns(ColorScheme cs);
235 void NotifyAuiPlugIns(
void);
236 bool CallLateInit(
void);
238 bool IsAnyPlugInChartEnabled();
240 void SendBaseConfigToAllPlugIns();
241 void SendS52ConfigToAllPlugIns(
bool bReconfig =
false);
242 void SendSKConfigToAllPlugIns();
244 void UpdateManagedPlugins();
247 void InitCommListeners(
void);
255 void HandleN0183(std::shared_ptr<const Nmea0183Msg> n0183_msg);
263 void HandleSignalK(std::shared_ptr<const SignalkMsg> sK_msg);
265 wxArrayString GetPlugInChartClassNameArray(
void);
268 float zlat,
float zlon,
272 ListOfPI_S57Obj* rule_list);
274 wxString GetLastError();
275 MyFrame* GetParentFrame() {
return pParent; }
277 void DimeWindow(wxWindow* win);
281 ListOfPI_S57Obj* GetLightsObjRuleListVisibleAtLatLon(
285 bool CheckBlacklistedPlugin(wxString name,
int major,
int minor);
287 void OnNewMessageType();
308 std::unordered_map<std::string, ObsListener> m_0183_listeners;
310 wxBitmap* BuildDimmedToolBitmap(wxBitmap* pbmp_normal,
311 unsigned char dim_ratio);
316 void HandlePluginLoaderEvents();
317 void HandlePluginHandlerEvents();
320 std::unique_ptr<BlacklistUI> m_blacklist_ui;
322 wxString m_last_error_string;
324 ArrayOfPlugInMenuItems m_PlugInMenuItems;
325 ArrayOfPlugInToolbarTools m_PlugInToolbarTools;
327 wxString m_plugin_location;
329 int m_plugin_tool_id_next;
330 int m_plugin_menu_item_id_next;
331 wxBitmap m_cached_overlay_bm;
333 wxArrayString m_plugin_order;
334 void SetPluginOrder(wxString serialized_names);
335 wxString GetPluginOrder();
339 std::unique_ptr<AbstractBlacklist> m_blacklist;
341#ifndef __OCPN__ANDROID__
345 wxCurlDownloadThread* m_pCurlThread;
347 std::shared_ptr<wxCurlBase> m_pCurl;
350 bool HandleCurlThreadError(wxCurlThreadError err, wxCurlBaseThread* p,
351 const wxString& url = wxEmptyString);
352 void OnEndPerformCurlDownload(wxCurlEndPerformEvent& ev);
353 void OnCurlDownload(wxCurlDownloadEvent& ev);
355 wxEvtHandler* m_download_evHandler;
356 long* m_downloadHandle;
358 long m_last_online_chk;
362 DECLARE_EVENT_TABLE()
454 DECLARE_EVENT_TABLE()
459 PluginPanel(wxPanel* parent, wxWindowID
id,
const wxPoint& pos,
463 PluginPanel(wxPanel* parent, wxWindowID
id,
const wxPoint& pos,
467 PluginPanel(wxPanel* parent,
const std::string& name);
471 void OnPluginSelected(wxMouseEvent& event);
472 void OnPluginSelectedUp(wxMouseEvent& event);
473 void DoPluginSelect();
475 void SetSelected(
bool selected);
476 void OnPluginPreferences(wxCommandEvent& event);
477 void OnPluginEnableToggle(wxCommandEvent& event);
478 void OnPluginAction(wxCommandEvent& event);
479 void OnPluginUninstall(wxCommandEvent& event);
480 void OnPluginUp(wxCommandEvent& event);
481 void OnPluginDown(wxCommandEvent& event);
482 void SetEnabled(
bool enabled);
483 bool GetSelected() {
return m_bSelected; }
484 const PlugInData* GetPluginPtr() {
return &m_plugin; };
485 void SetActionLabel(wxString& label);
486 ActionVerb GetAction() {
return m_action; }
487 const PlugInData* GetPlugin() {
return &m_plugin; }
488 void OnPaint(wxPaintEvent& event);
494 wxStaticText* m_pName;
495 wxStaticText* m_pVersion;
496 wxStaticText* m_pDescription;
497 wxBoxSizer* m_pButtons;
498 wxStaticBitmap* m_itemStaticBitmap;
499 wxStaticBitmap* m_itemStatusIconBitmap;
500 wxButton* m_pButtonPreferences;
501 wxButton *m_pButtonAction, *m_pButtonUninstall;
503 wxCheckBox* m_cbEnable;
506 int m_penWidthUnselected, m_penWidthSelected;
507 bool m_is_safe_panel;