1
<refentry id="MgCanvas">
3
<refentrytitle>MgCanvas</refentrytitle>
4
<manvolnum>3</manvolnum>
5
<refmiscinfo>LIBMERGEANT Library</refmiscinfo>
9
<refname>MgCanvas</refname><refpurpose>Base class for all the <link linkend="GnomeCanvas"><type>GnomeCanvas</type></link> derived widgets in libmergeant.</refpurpose>
12
<refsynopsisdiv><title>Synopsis</title>
18
struct <link linkend="MgCanvas-struct">MgCanvas</link>;
19
<link linkend="guint">guint</link> <link linkend="mg-canvas-get-type">mg_canvas_get_type</link> (void);
20
<link linkend="MgGraph">MgGraph</link>* <link linkend="mg-canvas-get-graph">mg_canvas_get_graph</link> (<link linkend="MgCanvas">MgCanvas</link> *canvas);
21
<link linkend="GtkWidget">GtkWidget</link>* <link linkend="mg-canvas-set-in-scrolled-window">mg_canvas_set_in_scrolled_window</link>
22
(<link linkend="MgCanvas">MgCanvas</link> *canvas);
23
<link linkend="void">void</link> <link linkend="mg-canvas-declare-item">mg_canvas_declare_item</link> (<link linkend="MgCanvas">MgCanvas</link> *canvas,
24
<link linkend="MgCanvasItem">MgCanvasItem</link> *item);
25
<link linkend="MgCanvasItem">MgCanvasItem</link>* <link linkend="mg-canvas-get-item-for-object">mg_canvas_get_item_for_object</link> (<link linkend="MgCanvas">MgCanvas</link> *canvas,
26
<link linkend="MgBase">MgBase</link> *ref_obj);
27
<link linkend="void">void</link> <link linkend="mg-canvas-set-zoom-factor">mg_canvas_set_zoom_factor</link> (<link linkend="MgCanvas">MgCanvas</link> *canvas,
28
<link linkend="gdouble">gdouble</link> n);
29
<link linkend="gdouble">gdouble</link> <link linkend="mg-canvas-get-zoom-factor">mg_canvas_get_zoom_factor</link> (<link linkend="MgCanvas">MgCanvas</link> *canvas);
30
<link linkend="gdouble">gdouble</link> <link linkend="mg-canvas-fit-zoom-factor">mg_canvas_fit_zoom_factor</link> (<link linkend="MgCanvas">MgCanvas</link> *canvas);
35
<title>Object Hierarchy</title>
38
<link linkend="GObject">GObject</link>
39
+----<link linkend="GtkObject">GtkObject</link>
40
+----<link linkend="GtkWidget">GtkWidget</link>
41
+----<link linkend="GtkContainer">GtkContainer</link>
42
+----<link linkend="GtkLayout">GtkLayout</link>
43
+----<link linkend="GnomeCanvas">GnomeCanvas</link>
45
+----<link linkend="MgCanvasDbRelations">MgCanvasDbRelations</link>
53
<title>Implemented Interfaces</title>
56
<link linkend="AtkImplementorIface">AtkImplementorIface</link>.</para>
62
<title>Properties</title>
65
"<link linkend="MgCanvas--graph">graph</link>" <link linkend="gpointer">gpointer</link> : Read / Write
70
<title>Signal Prototypes</title>
73
"<link linkend="MgCanvas-drag-action">drag-action</link>"
74
<link linkend="void">void</link> user_function (<link linkend="MgCanvas">MgCanvas</link> *mgcanvas,
75
<link linkend="gpointer">gpointer</link> arg1,
76
<link linkend="gpointer">gpointer</link> arg2,
77
<link linkend="gpointer">gpointer</link> user_data);
83
<title>Description</title>
85
This abstract class adds some basic functionnalities on top of the <link linkend="GnomeCanvas"><type>GnomeCanvas</type></link> canvas such as:
87
<listitem><para>synchronisation with a <link linkend="MgGraph"><type>MgGraph</type></link> object (to be able to save the position of each canvas
88
item) and management of the list of items drawn on the canvas.</para></listitem>
89
<listitem><para>zoom settings</para></listitem>
93
The <link linkend="MgCanvas"><type>MgCanvas</type></link> widget can be used with or without any associated <link linkend="MgGraph"><type>MgGraph</type></link> object.
98
<title>Details</title>
100
<title><anchor id="MgCanvas-struct"/>struct MgCanvas</title>
101
<indexterm><primary>MgCanvas</primary></indexterm><programlisting>struct MgCanvas;</programlisting>
106
<title><anchor id="mg-canvas-get-type"/>mg_canvas_get_type ()</title>
107
<indexterm><primary>mg_canvas_get_type</primary></indexterm><programlisting><link linkend="guint">guint</link> mg_canvas_get_type (void);</programlisting>
110
</para><variablelist role="params">
111
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
114
</simpara></listitem></varlistentry>
115
</variablelist></refsect2>
117
<title><anchor id="mg-canvas-get-graph"/>mg_canvas_get_graph ()</title>
118
<indexterm><primary>mg_canvas_get_graph</primary></indexterm><programlisting><link linkend="MgGraph">MgGraph</link>* mg_canvas_get_graph (<link linkend="MgCanvas">MgCanvas</link> *canvas);</programlisting>
121
</para><variablelist role="params">
122
<varlistentry><term><parameter>canvas</parameter> :</term>
124
</simpara></listitem></varlistentry>
125
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
128
</simpara></listitem></varlistentry>
129
</variablelist></refsect2>
131
<title><anchor id="mg-canvas-set-in-scrolled-window"/>mg_canvas_set_in_scrolled_window ()</title>
132
<indexterm><primary>mg_canvas_set_in_scrolled_window</primary></indexterm><programlisting><link linkend="GtkWidget">GtkWidget</link>* mg_canvas_set_in_scrolled_window
133
(<link linkend="MgCanvas">MgCanvas</link> *canvas);</programlisting>
135
Creates a new <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> object and put <parameter>canvas</parameter>
136
in it. <parameter>canvas</parameter> can be retreived using a "canvas" user property of
137
the new scrolled window.</para>
140
</para><variablelist role="params">
141
<varlistentry><term><parameter>canvas</parameter> :</term>
142
<listitem><simpara> a <link linkend="MgCanvas"><type>MgCanvas</type></link> widget
143
</simpara></listitem></varlistentry>
144
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the new scrolled window.
145
</simpara></listitem></varlistentry>
146
</variablelist></refsect2>
148
<title><anchor id="mg-canvas-declare-item"/>mg_canvas_declare_item ()</title>
149
<indexterm><primary>mg_canvas_declare_item</primary></indexterm><programlisting><link linkend="void">void</link> mg_canvas_declare_item (<link linkend="MgCanvas">MgCanvas</link> *canvas,
150
<link linkend="MgCanvasItem">MgCanvasItem</link> *item);</programlisting>
152
Declares <parameter>item</parameter> to be listed by <parameter>canvas</parameter> as one of its items.
153
This functions should be called after each <link linkend="MgCanvasItem"><type>MgCanvasItem</type></link> is added to
154
<parameter>canvas</parameter>.
157
If it was not called for one item, then that item won't be used
158
in <parameter>canvas</parameter>'s computations (no drag and drop, cleanup, etc).</para>
161
</para><variablelist role="params">
162
<varlistentry><term><parameter>canvas</parameter> :</term>
163
<listitem><simpara> a <link linkend="MgCanvas"><type>MgCanvas</type></link> widget
164
</simpara></listitem></varlistentry>
165
<varlistentry><term><parameter>item</parameter> :</term>
166
<listitem><simpara> a <link linkend="MgCanvasItem"><type>MgCanvasItem</type></link> object
167
</simpara></listitem></varlistentry>
168
</variablelist></refsect2>
170
<title><anchor id="mg-canvas-get-item-for-object"/>mg_canvas_get_item_for_object ()</title>
171
<indexterm><primary>mg_canvas_get_item_for_object</primary></indexterm><programlisting><link linkend="MgCanvasItem">MgCanvasItem</link>* mg_canvas_get_item_for_object (<link linkend="MgCanvas">MgCanvas</link> *canvas,
172
<link linkend="MgBase">MgBase</link> *ref_obj);</programlisting>
174
Get the <link linkend="MgCanvasItem"><type>MgCanvasItem</type></link> corresponding to <parameter>obj</parameter>;</para>
177
</para><variablelist role="params">
178
<varlistentry><term><parameter>canvas</parameter> :</term>
179
<listitem><simpara> a <link linkend="MgCanvas"><type>MgCanvas</type></link> widget
180
</simpara></listitem></varlistentry>
181
<varlistentry><term><parameter>ref_obj</parameter> :</term>
183
</simpara></listitem></varlistentry>
184
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
185
</simpara></listitem></varlistentry>
186
</variablelist></refsect2>
188
<title><anchor id="mg-canvas-set-zoom-factor"/>mg_canvas_set_zoom_factor ()</title>
189
<indexterm><primary>mg_canvas_set_zoom_factor</primary></indexterm><programlisting><link linkend="void">void</link> mg_canvas_set_zoom_factor (<link linkend="MgCanvas">MgCanvas</link> *canvas,
190
<link linkend="gdouble">gdouble</link> n);</programlisting>
192
Sets the zooming factor of a canvas by specifying the number of pixels that correspond
193
to one canvas unit. A zoom factor of 1.0 is the default value; greater than 1.0 makes a zoom in
194
and lower than 1.0 makes a zoom out.</para>
197
</para><variablelist role="params">
198
<varlistentry><term><parameter>canvas</parameter> :</term>
199
<listitem><simpara> a <link linkend="MgCanvas"><type>MgCanvas</type></link> widget
200
</simpara></listitem></varlistentry>
201
<varlistentry><term><parameter>n</parameter> :</term>
202
<listitem><simpara> the zoom factor
203
</simpara></listitem></varlistentry>
204
</variablelist></refsect2>
206
<title><anchor id="mg-canvas-get-zoom-factor"/>mg_canvas_get_zoom_factor ()</title>
207
<indexterm><primary>mg_canvas_get_zoom_factor</primary></indexterm><programlisting><link linkend="gdouble">gdouble</link> mg_canvas_get_zoom_factor (<link linkend="MgCanvas">MgCanvas</link> *canvas);</programlisting>
209
Get the current zooming factor of a canvas.</para>
212
</para><variablelist role="params">
213
<varlistentry><term><parameter>canvas</parameter> :</term>
214
<listitem><simpara> a <link linkend="MgCanvas"><type>MgCanvas</type></link> widget
215
</simpara></listitem></varlistentry>
216
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the zooming factor.
217
</simpara></listitem></varlistentry>
218
</variablelist></refsect2>
220
<title><anchor id="mg-canvas-fit-zoom-factor"/>mg_canvas_fit_zoom_factor ()</title>
221
<indexterm><primary>mg_canvas_fit_zoom_factor</primary></indexterm><programlisting><link linkend="gdouble">gdouble</link> mg_canvas_fit_zoom_factor (<link linkend="MgCanvas">MgCanvas</link> *canvas);</programlisting>
223
Compute and set the correct zoom factor so that all the items on <parameter>canvas</parameter> can be displayed
227
</para><variablelist role="params">
228
<varlistentry><term><parameter>canvas</parameter> :</term>
229
<listitem><simpara> a <link linkend="MgCanvas"><type>MgCanvas</type></link> widget
230
</simpara></listitem></varlistentry>
231
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the new zooming factor.
232
</simpara></listitem></varlistentry>
233
</variablelist></refsect2>
237
<title>Properties</title>
239
<varlistentry><term><anchor id="MgCanvas--graph"/>"<literal>graph</literal>" (<link linkend="gpointer">gpointer</link> : Read / Write)</term>
242
</listitem></varlistentry>
248
<title>Signals</title>
249
<refsect2><title><anchor id="MgCanvas-drag-action"/>The "drag-action" signal</title>
250
<programlisting><link linkend="void">void</link> user_function (<link linkend="MgCanvas">MgCanvas</link> *mgcanvas,
251
<link linkend="gpointer">gpointer</link> arg1,
252
<link linkend="gpointer">gpointer</link> arg2,
253
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
256
</para><variablelist role="params">
257
<varlistentry><term><parameter>mgcanvas</parameter> :</term>
258
<listitem><simpara>the object which received the signal.
259
</simpara></listitem></varlistentry>
260
<varlistentry><term><parameter>arg1</parameter> :</term>
262
</simpara></listitem></varlistentry>
263
<varlistentry><term><parameter>arg2</parameter> :</term>
266
</simpara></listitem></varlistentry>
267
<varlistentry><term><parameter>user_data</parameter> :</term>
268
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
269
</variablelist></refsect2>