MLPluginIfc 1.0
 
Loading...
Searching...
No Matches
MLPlugin Class Reference

The MLPlugin class. More...

#include <MLPlugin.h>

Public Member Functions

 MLPlugin (void *af_ptr)
 MLPlugin constructor.
 
virtual void createWindow (Gtk::Window *parent_window)
 Virtual function.
 
Glib::ustring getPluginName ()
 Returns plugin name if set.
 
Glib::ustring getPluginDescription ()
 Returns plugin description.
 

Protected Attributes

std::shared_ptr< AuxFunc > af
 Pointer to AuxFunc object.
 
Glib::ustring plugin_name
 Plugin name.
 
Glib::ustring plugin_description
 Plugin description.
 

Detailed Description

The MLPlugin class.

MLPlugin is base class for plugins creation. To create plugin inherit your plugin base class from MLPlugin and override createWindow() method. Also set plugin_name and plugin_description if needed. Your plugin base header file must include C function create (see example).

#ifndef EXAMPLEPLUGIN_H
#define EXAMPLEPLUGIN_H
#include <MLPlugin.h>
class ExamplePlugin : public MLPlugin
{
public:
ExamplePlugin(void *af_ptr);
void
createWindow(Gtk::Window *parent_window) override;
};
extern "C"
{
#ifdef __linux
create(void *af_ptr)
{
return new ExamplePlugin(af_ptr);
}
#endif
#ifdef _WIN32
__declspec(dllexport) MLPlugin *
create(void *af_ptr)
{
return new ExamplePlugin(af_ptr);
}
#endif
}
#endif // EXAMPLEPLUGIN_H
The MLPlugin class.
Definition MLPlugin.h:59
MLPlugin(void *af_ptr)
MLPlugin constructor.
virtual void createWindow(Gtk::Window *parent_window)
Virtual function.
#include <ExamplePlugin.h>
#include <gtkmm-4.0/gtkmm/grid.h>
#include <gtkmm-4.0/gtkmm/label.h>
ExamplePlugin::ExamplePlugin(void *af_ptr) : MLPlugin(af_ptr)
{
plugin_name = "Example plugin";
plugin_description = "Small example plugin";
}
void
ExamplePlugin::createWindow(Gtk::Window *parent_window)
{
Gtk::Window *window = new Gtk::Window;
window->set_application(parent_window->get_application());
window->set_title(plugin_name);
window->set_name("MLwindow");
window->set_transient_for(*parent_window);
window->set_modal(true);
Gtk::Grid *grid = Gtk::make_managed<Gtk::Grid>();
grid->set_halign(Gtk::Align::FILL);
grid->set_valign(Gtk::Align::FILL);
window->set_child(*grid);
Gtk::Label *lab = Gtk::make_managed<Gtk::Label>();
lab->set_margin(5);
lab->set_halign(Gtk::Align::START);
lab->set_name("windowLabel");
lab->set_text("Example plugin");
grid->attach(*lab, 0, 0, 1, 1);
window->signal_close_request().connect(
[window] {
std::unique_ptr<Gtk::Window> win(window);
win->set_visible(false);
return true;
},
false);
window->present();
}
Glib::ustring plugin_name
Plugin name.
Definition MLPlugin.h:111
Glib::ustring plugin_description
Plugin description.
Definition MLPlugin.h:115

Constructor & Destructor Documentation

◆ MLPlugin()

MLPlugin::MLPlugin ( void * af_ptr)

MLPlugin constructor.

Parameters
af_ptrpointer to std::shared_ptr<AuxFunc> object.

Member Function Documentation

◆ createWindow()

virtual void MLPlugin::createWindow ( Gtk::Window * parent_window)
virtual

Virtual function.

You should override this method to create your plugin window. New window should be transient for parent_window. It is also strongly recommended to make new window modal (see example in class description).

Parameters
parent_windowpointer to parent window object

◆ getPluginDescription()

Glib::ustring MLPlugin::getPluginDescription ( )

Returns plugin description.

Returns
Glib string containing plugin name

◆ getPluginName()

Glib::ustring MLPlugin::getPluginName ( )

Returns plugin name if set.

Returns
Glib string containing plugin name

Member Data Documentation

◆ af

std::shared_ptr<AuxFunc> MLPlugin::af
protected

Pointer to AuxFunc object.

AuxFunc class contains various useful methods (see MLBookProc documentation).