177 bool RenderAllCanvasOverlayPlugIns(
ocpnDC& dc,
const ViewPort& vp,
178 int canvasIndex,
int priority);
179 bool RenderAllGLCanvasOverlayPlugIns(wxGLContext* pcontext,
180 const ViewPort& vp,
int canvasIndex,
183 void SendViewPortToRequestingPlugIns(
ViewPort& vp);
184 void PrepareAllPluginContextMenus();
186 void NotifySetupOptions();
188 void CloseAllPlugInPanels(
int);
190 ArrayOfPlugInToolbarTools& GetPluginToolbarToolArray() {
191 return m_PlugInToolbarTools;
193 int AddToolbarTool(wxString label, wxBitmap* bitmap, wxBitmap* bmpRollover,
194 wxItemKind kind, wxString shortHelp, wxString longHelp,
195 wxObject* clientData,
int position,
int tool_sel,
198 void RemoveToolbarTool(
int tool_id);
199 void SetToolbarToolViz(
int tool_id,
bool viz);
200 void SetToolbarItemState(
int tool_id,
bool toggle);
201 void SetToolbarItemBitmaps(
int item, wxBitmap* bitmap, wxBitmap* bmpDisabled);
203 int AddToolbarTool(wxString label, wxString SVGfile, wxString SVGRolloverfile,
204 wxString SVGToggledfile, wxItemKind kind,
205 wxString shortHelp, wxString longHelp,
206 wxObject* clientData,
int position,
int tool_sel,
209 void SetToolbarItemBitmaps(
int item, wxString SVGfile,
210 wxString SVGfileRollover, wxString SVGfileToggled);
213 wxString GetToolOwnerCommonName(
const int id);
214 void ShowDeferredBlacklistMessages();
216 ArrayOfPlugInMenuItems& GetPluginContextMenuItemArray() {
217 return m_PlugInMenuItems;
219 int AddCanvasContextMenuItemPIM(wxMenuItem* pitem,
opencpn_plugin* pplugin,
220 const char* name =
"",
221 bool is_extended =
false);
222 void RemoveCanvasContextMenuItem(
int item,
const char* name =
"");
223 void SetCanvasContextMenuItemViz(
int item,
bool viz,
const char* name =
"");
224 void SetCanvasContextMenuItemGrey(
int item,
bool grey,
const char* name =
"");
226 bool UpDateChartDataTypes();
227 void FinalizePluginLoadall();
230 void SendResizeEventToAllPlugIns(
int x,
int y);
231 void SetColorSchemeForAllPlugIns(ColorScheme cs);
232 void NotifyAuiPlugIns(
void);
233 bool CallLateInit(
void);
235 bool IsAnyPlugInChartEnabled();
237 void SendBaseConfigToAllPlugIns();
238 void SendS52ConfigToAllPlugIns(
bool bReconfig =
false);
239 void SendSKConfigToAllPlugIns();
241 void UpdateManagedPlugins();
244 void InitCommListeners(
void);
252 void HandleN0183(std::shared_ptr<const Nmea0183Msg> n0183_msg);
260 void HandleSignalK(std::shared_ptr<const SignalkMsg> sK_msg);
262 wxArrayString GetPlugInChartClassNameArray(
void);
263 opencpn_plugin* GetProvidingPlugin(
const wxString& ChartClassName);
266 float zlat,
float zlon,
270 ListOfPI_S57Obj* rule_list);
272 wxString GetLastError();
275 void DimeWindow(wxWindow* win);
279 ListOfPI_S57Obj* GetLightsObjRuleListVisibleAtLatLon(
283 bool CheckBlacklistedPlugin(wxString name,
int major,
int minor);
285 void OnNewMessageType();
306 std::unordered_map<std::string, ObsListener> m_0183_listeners;
308 wxBitmap* BuildDimmedToolBitmap(wxBitmap* pbmp_normal,
309 unsigned char dim_ratio);
314 void HandlePluginLoaderEvents();
315 void HandlePluginHandlerEvents();
318 std::unique_ptr<BlacklistUI> m_blacklist_ui;
320 wxString m_last_error_string;
322 ArrayOfPlugInMenuItems m_PlugInMenuItems;
323 ArrayOfPlugInToolbarTools m_PlugInToolbarTools;
325 wxString m_plugin_location;
327 int m_plugin_tool_id_next;
328 int m_plugin_menu_item_id_next;
329 wxBitmap m_cached_overlay_bm;
331 wxArrayString m_plugin_order;
332 void SetPluginOrder(wxString serialized_names);
333 wxString GetPluginOrder();
337 std::unique_ptr<AbstractBlacklist> m_blacklist;
343 wxCurlDownloadThread* m_pCurlThread;
345 std::shared_ptr<wxCurlBase> m_pCurl;
348 bool HandleCurlThreadError(wxCurlThreadError err, wxCurlBaseThread* p,
349 const wxString& url = wxEmptyString);
350 void OnEndPerformCurlDownload(wxCurlEndPerformEvent& ev);
351 void OnCurlDownload(wxCurlDownloadEvent& ev);
353 wxEvtHandler* m_download_evHandler;
354 long* m_downloadHandle;
356 long m_last_online_chk;
360 DECLARE_EVENT_TABLE()
452 DECLARE_EVENT_TABLE()
457 PluginPanel(wxPanel* parent, wxWindowID
id,
const wxPoint& pos,
461 PluginPanel(wxPanel* parent, wxWindowID
id,
const wxPoint& pos,
465 PluginPanel(wxPanel* parent,
const std::string& name);
469 void OnPluginSelected(wxMouseEvent& event);
470 void OnPluginSelectedUp(wxMouseEvent& event);
471 void DoPluginSelect();
473 void SetSelected(
bool selected);
474 void OnPluginPreferences(wxCommandEvent& event);
475 void OnPluginEnableToggle(wxCommandEvent& event);
476 void OnPluginAction(wxCommandEvent& event);
477 void OnPluginUninstall(wxCommandEvent& event);
478 void OnPluginUp(wxCommandEvent& event);
479 void OnPluginDown(wxCommandEvent& event);
480 void SetEnabled(
bool enabled);
481 bool GetSelected() {
return m_bSelected; }
482 const PlugInData* GetPluginPtr() {
return &m_plugin; };
483 void SetActionLabel(wxString& label);
484 ActionVerb GetAction() {
return m_action; }
485 const PlugInData* GetPlugin() {
return &m_plugin; }
486 void OnPaint(wxPaintEvent& event);
492 wxStaticText* m_pName;
493 wxStaticText* m_pVersion;
494 wxStaticText* m_pDescription;
495 wxBoxSizer* m_pButtons;
496 wxStaticBitmap* m_itemStaticBitmap;
497 wxStaticBitmap* m_itemStatusIconBitmap;
498 wxButton* m_pButtonPreferences;
499 wxButton *m_pButtonAction, *m_pButtonUninstall;
501 wxCheckBox* m_cbEnable;
504 int m_penWidthUnselected, m_penWidthSelected;
505 bool m_is_safe_panel;