libyui  3.4.2
YGraphPlugin.h
1 /*
2  Copyright (C) 2000-2012 Novell, Inc
3  This library is free software; you can redistribute it and/or modify
4  it under the terms of the GNU Lesser General Public License as
5  published by the Free Software Foundation; either version 2.1 of the
6  License, or (at your option) version 3.0 of the License. This library
7  is distributed in the hope that it will be useful, but WITHOUT ANY
8  WARRANTY; without even the implied warranty of MERCHANTABILITY or
9  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
10  License for more details. You should have received a copy of the GNU
11  Lesser General Public License along with this library; if not, write
12  to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
13  Floor, Boston, MA 02110-1301 USA
14 */
15 
16 
17 /*-/
18 
19  File: YGraphPlugin.h
20 
21  Author: Arvin Schnell <aschnell@suse.de>
22 
23 /-*/
24 
25 #ifndef YGraphPlugin_h
26 #define YGraphPlugin_h
27 
28 #include "YUIPlugin.h"
29 
30 class YWidget;
31 class YGraph;
32 
33 
34 /**
35  * Abstract base class for simplified access to UI plugins for graph widget.
36  **/
37 class YGraphPlugin : public YUIPlugin
38 {
39 protected:
40  /**
41  * Constructor: Load the specified plugin library
42  * from the standard UI plugin directory (/usr/lib/yui/).
43  **/
45  : YUIPlugin( pluginLibBaseName ) {}
46 
47  /**
48  * Destructor. Calls dlclose() which will unload the plugin library if it
49  * is no longer used, i.e. if the reference count dlopen() uses reaches 0.
50  **/
51  virtual ~YGraphPlugin() {}
52 
53 public:
54  /**
55  * Create a graph widget.
56  * Derived classes need to implement this.
57  *
58  * This might return 0 if the plugin lib could not be loaded or if the
59  * appropriate symbol could not be located in the plugin lib.
60  **/
61  virtual YGraph * createGraph( YWidget * parent, const std::string & filename,
62  const std::string & layoutAlgorithm ) = 0;
63 };
64 
65 
66 #endif // YGraphPlugin_h
virtual ~YGraphPlugin()
Destructor.
Definition: YGraphPlugin.h:51
Abstract base class for simplified access to UI plugins for graph widget.
Definition: YGraphPlugin.h:37
A graph with nodes and edges, rendered with Graphviz.
Definition: YGraph.h:45
std::string pluginLibBaseName() const
Returns the base name of the plugin library.
Definition: YUIPlugin.h:96
virtual YGraph * createGraph(YWidget *parent, const std::string &filename, const std::string &layoutAlgorithm)=0
Create a graph widget.
YGraphPlugin(const char *pluginLibBaseName)
Constructor: Load the specified plugin library from the standard UI plugin directory (/usr/lib/yui/)...
Definition: YGraphPlugin.h:44
Wrapper class for dlopen() and related.
Definition: YUIPlugin.h:35
Abstract base class of all UI widgets.
Definition: YWidget.h:54