gtk_renderingWindowWidget

gtk_renderingWindowWidget — Defines a complex widget used to render files and print information.

Synopsis

#define             RENDERING_WINDOW_TYPE
#define             RENDERING_WINDOW                    (obj)
#define             RENDERING_WINDOW_CLASS              (klass)
#define             IS_RENDERING_WINDOW                 (obj)
#define             IS_RENDERING_WINDOW_CLASS           (klass)
#define             RENDERING_WINDOW_GET_CLASS          (obj)
                    VisuRenderingWindow;
                    VisuRenderingWindowClass;
GType               visu_rendering_window_get_type      (void);
#define             RENDERING_WINDOW_ID
GtkWidget*          visu_rendering_window_new           (int width,
                                                         int height,
                                                         gboolean withFrame,
                                                         gboolean withToolBar);
GtkWidget*          visu_rendering_window_newEmbedded   (int width,
                                                         int height);
void                renderingWindowPush_message         (VisuRenderingWindow *window,
                                                         gchar *message);
void                renderingWindowPop_message          (VisuRenderingWindow *window);
GdkPixbuf*          renderingWindowGet_backgroundImage  (VisuRenderingWindow *window,
                                                         guchar **rowData,
                                                         gboolean *hasAlphaChannel,
                                                         int *width,
                                                         int *height);
void                renderingWindowFree_backgroundImage (VisuRenderingWindow *window);
void                visu_rendering_window_setData       (VisuRenderingWindow *window,
                                                         VisuData *data);
VisuData*           visu_rendering_window_getVisuData   (VisuRenderingWindow *window);
void                visu_rendering_window_loadFile      (VisuRenderingWindow *window,
                                                         VisuData *data,
                                                         guint iSet);
void                renderingWindowOpen_file            (VisuRenderingWindow *window,
                                                         GtkWindow *parent);
gboolean            visu_rendering_window_dump          (VisuRenderingWindow *window,
                                                         VisuDump *format,
                                                         const char *fileName,
                                                         gint width,
                                                         gint height,
                                                         GError **error,
                                                         ToolVoidDataFunc functionWait,
                                                         gpointer data);
void                renderingWindowRedraw               (VisuRenderingWindow *window,
                                                         gboolean forceRedraw);
void                renderingWindowSet_current          (VisuRenderingWindow *window,
                                                         gboolean force);
void                renderingWindowPush_interactive     (VisuRenderingWindow *window,
                                                         VisuInteractive *inter);
void                renderingWindowPop_interactive      (VisuRenderingWindow *window,
                                                         VisuInteractive *inter);
VisuMarks*          visu_rendering_window_getMarks      (VisuRenderingWindow *window);
VisuInteractive*    renderingWindowClassGet_interactive ();
gboolean            visu_rendering_window_setDisplayCoordinatesInReduce
                                                        (gboolean status);
gboolean            visu_rendering_window_getDisplayCoordinatesInReduce
                                                        ();
gboolean            visu_rendering_window_setAutoAdjust (gboolean status);
gboolean            visu_rendering_window_getAutoAdjust ();

Object Hierarchy

  GObject
   +----GInitiallyUnowned
         +----GtkObject
               +----GtkWidget
                     +----GtkContainer
                           +----GtkBox
                                 +----GtkVBox
                                       +----VisuRenderingWindow

Implemented Interfaces

VisuRenderingWindow implements AtkImplementorIface, GtkBuildable and GtkOrientable.

Signals

  "export"                                         : Run Last / Action
  "open"                                           : Run Last / Action
  "reload"                                         : Run Last / Action
  "show-action-dialog"                             : Run Last / No Recursion / Action / No Hooks
  "show-main-panel"                                : Run Last / No Recursion / Action / No Hooks

Description

This is a complex widget, inheriting from GtkWindow, with a rendering area and a status bar area. A VisuData is always attached to this widget, see visu_rendering_window_setData(). If not the V_Sim logo is displayed.

The rendering area can receive keyboard or mouse events, see renderingWindowSet_pickEventListener() or renderingWindowSet_observeEventListener(). Then, callbacks are defined using renderingWindowSet_interactiveHandlers().

The status bar area has different buttons to load or export a file. It also display some usefull information like the number of rendered nodes. It has also a real status bar location displaying tips about current available actions. One can add news using renderingWindowPush_message().

Details

RENDERING_WINDOW_TYPE

#define RENDERING_WINDOW_TYPE         (visu_rendering_window_get_type())

Return the associated GType to the Renderingwindow objects.


RENDERING_WINDOW()

#define RENDERING_WINDOW(obj)         (G_TYPE_CHECK_INSTANCE_CAST((obj), RENDERING_WINDOW_TYPE, VisuRenderingWindow))

Cast the given object to a VisuRenderingWindow object.

obj :

the widget to cast.

RENDERING_WINDOW_CLASS()

#define RENDERING_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), RENDERING_WINDOW_TYPE, VisuRenderingWindowClass))

Cast the given class to a VisuRenderingWindowClass object.

klass :

the class to cast.

IS_RENDERING_WINDOW()

#define IS_RENDERING_WINDOW(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), RENDERING_WINDOW_TYPE))

Return if the given object is a valid VisuRenderingWindow object.

obj :

the object to test.

IS_RENDERING_WINDOW_CLASS()

#define IS_RENDERING_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), RENDERING_WINDOW_TYPE))

Return if the given class is a valid VisuRenderingWindowClass class.

klass :

the class to test.

RENDERING_WINDOW_GET_CLASS()

#define RENDERING_WINDOW_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS(obj, RENDERING_WINDOW_TYPE, VisuRenderingWindowClass))

It returns the class of the given obj.

obj :

a GObject to get the class of.

VisuRenderingWindow

typedef struct _VisuRenderingWindow VisuRenderingWindow;

Short form for a VisuRenderingWindow_struct structure.


VisuRenderingWindowClass

typedef struct _VisuRenderingWindowClass VisuRenderingWindowClass;

Short form for a VisuRenderingWindowClass_struct structure.


visu_rendering_window_get_type ()

GType               visu_rendering_window_get_type      (void);

GType are unique numbers to identify objects.

Returns :

the GType associated with VisuRenderingWindow objects.

RENDERING_WINDOW_ID

#define RENDERING_WINDOW_ID "ContainerWindow"

The key to get the embedding GtkWindow of a given VisuRenderingWindow widget, if any. See visu_rendering_window_newEmbedded().


visu_rendering_window_new ()

GtkWidget*          visu_rendering_window_new           (int width,
                                                         int height,
                                                         gboolean withFrame,
                                                         gboolean withToolBar);

A VisuRenderingWindow widget is a GtkWindow that have an area for OpenGL drawing and a statusBar with many stuff like action buttons, real status bar for notifications, ... The rendering area can be drawn with a frame or not. With this routine, only the VisuRenderingWindow widget is created. To embed it into a window automatically, use visu_rendering_window_newEmbedded() instead.

width :

its desired width ;

height :

its desired height ;

withFrame :

a boolean ;

withToolBar :

a boolean.

Returns :

a newly created VisuRenderingWindow widget.

visu_rendering_window_newEmbedded ()

GtkWidget*          visu_rendering_window_newEmbedded   (int width,
                                                         int height);

Like visu_rendering_window_new() but create also a GtkWindow to go around. This widget is reachable using g_object_get_data() with the key RENDERING_WINDOW_ID. In that case, no frame is drawn around the rendering area.

width :

its desired width ;

height :

its desired height.

Returns :

a newly created VisuRenderingWindow widget.. transfer full.

renderingWindowPush_message ()

void                renderingWindowPush_message         (VisuRenderingWindow *window,
                                                         gchar *message);

Use this method to add some informations on the status bar.

window :

a valid VisuRenderingWindow object ;

message :

an UTF8 string to print on the status bar.

renderingWindowPop_message ()

void                renderingWindowPop_message          (VisuRenderingWindow *window);

Remove the last message.

window :

a valid VisuRenderingWindow object.

renderingWindowGet_backgroundImage ()

GdkPixbuf*          renderingWindowGet_backgroundImage  (VisuRenderingWindow *window,
                                                         guchar **rowData,
                                                         gboolean *hasAlphaChannel,
                                                         int *width,
                                                         int *height);

Use this method to load an image in memory (according to GdkPixbuf specification) and retrieve the row data in memory.

window :

a valid VisuRenderingWindow object ;

rowData :

a pointer to be set on the data in memory ;

hasAlphaChannel :

a pointer to store if the loaded iage has an alpha channel ;

width :

store the width ;

height :

store the height.

Returns :

a pointer to GdkPixbuf that is own by the window object. his image stay in memory until a call to renderigWindowFree_backgroundImage() occurs.

renderingWindowFree_backgroundImage ()

void                renderingWindowFree_backgroundImage (VisuRenderingWindow *window);

Free loaded background image if exists.

window :

a valid VisuRenderingWindow object.

visu_rendering_window_setData ()

void                visu_rendering_window_setData       (VisuRenderingWindow *window,
                                                         VisuData *data);

This method is used to attach a VisuData object to a given window. When, data is not NULL, this method emit the dataReadyForRendering signal, and all modules that needs to draw something should catch this signal and draw in the rendering window. If data is NULL, the dataNotReadyForRendering is emitted instead.

window :

a valid VisuRenderingWindow object ;

data :

a VisuData to render in the given window (can be NULL).

visu_rendering_window_getVisuData ()

VisuData*           visu_rendering_window_getVisuData   (VisuRenderingWindow *window);

This method is used to get the VisuData attached to a window.

window :

a valid VisuRenderingWindow object.

Returns :

the VisuData attached to the window or NULL if none.. transfer none.

visu_rendering_window_loadFile ()

void                visu_rendering_window_loadFile      (VisuRenderingWindow *window,
                                                         VisuData *data,
                                                         guint iSet);

This method calls the general function to load data from file and deals with errors with gtkDialogs. The filenames must have already been set into data using visu_data_addFile().

window :

a valid VisuRenderingWindow object.

data :

the VisuData to be loaded.

iSet :

the id of data to load.

renderingWindowOpen_file ()

void                renderingWindowOpen_file            (VisuRenderingWindow *window,
                                                         GtkWindow *parent);

Do as if the load button has been pushed, i.e. open a filechooser dialog on the parent window, and load the resulting file, refreshing the view if necessary.

window :

the window the file will by rendered on ;

parent :

the parent window for the filechooser dialog.

visu_rendering_window_dump ()

gboolean            visu_rendering_window_dump          (VisuRenderingWindow *window,
                                                         VisuDump *format,
                                                         const char *fileName,
                                                         gint width,
                                                         gint height,
                                                         GError **error,
                                                         ToolVoidDataFunc functionWait,
                                                         gpointer data);

Call this method to dump the given window to a file.

window :

a valid VisuRenderingWindow object ;

format :

a VisuDump object, corresponding to the write method ;

fileName :

a string that defined the file to write to ;

width :

an integer ;

height :

an integer ;

error :

a location to store some error (not NULL) ;. allow-none.

functionWait :

a method to call periodically during the dump ;. scope call

data :

some pointer on object to be passed to the wait function.. closure

Returns :

TRUE if everything went right.

renderingWindowRedraw ()

void                renderingWindowRedraw               (VisuRenderingWindow *window,
                                                         gboolean forceRedraw);

Update the OpenGL area of the rendering window if the opengl option is set to immediate. If not, use forceRedraw to redraw.

window :

a valid VisuRenderingWindow object ;

forceRedraw :

a boolean.

renderingWindowSet_current ()

void                renderingWindowSet_current          (VisuRenderingWindow *window,
                                                         gboolean force);

Set the OpenGL area as the current rendering area. If force is TRUE then the context is switched whatever buffered value.

window :

a valid VisuRenderingWindow object ;

force :

a boolean.

Since 3.5


renderingWindowPush_interactive ()

void                renderingWindowPush_interactive     (VisuRenderingWindow *window,
                                                         VisuInteractive *inter);

It adds inter to the stack of interactive sessions currently attached to window and launch it.

window :

a VisuRenderingWindow object.

inter :

a VisuInteractive object.

Since 3.6


renderingWindowPop_interactive ()

void                renderingWindowPop_interactive      (VisuRenderingWindow *window,
                                                         VisuInteractive *inter);

It removes inter from the stack of interactive sessions currently attached to window. If inter was first on the stack, the next session is launched.

window :

a VisuRenderingWindow object.

inter :

a VisuInteractive object.

Since 3.6


visu_rendering_window_getMarks ()

VisuMarks*          visu_rendering_window_getMarks      (VisuRenderingWindow *window);

Get the VisuMarks of the given window.

window :

a VisuRenderingWindow object ;

Returns :

a VisuMarks object owned by V_Sim. . transfer none.

Since 3.6


renderingWindowClassGet_interactive ()

VisuInteractive*    renderingWindowClassGet_interactive ();

The user actions on the rendering area are handled by a VisuInteractive object.

Returns :

the VisuInteractive object used by the rendering window of V_Sim. This object is owned by V_Sim.

Since 3.6


visu_rendering_window_setDisplayCoordinatesInReduce ()

gboolean            visu_rendering_window_setDisplayCoordinatesInReduce
                                                        (gboolean status);

If set, the coordinates of picked nodes are displayed in reduced values.

status :

a boolean.

Returns :

TRUE if the value has been changed.

Since 3.6


visu_rendering_window_getDisplayCoordinatesInReduce ()

gboolean            visu_rendering_window_getDisplayCoordinatesInReduce
                                                        ();

Picked nodes have their coordinates displayed in the status bar of the rendering window. This methods retrieves if they are printed in reduced values or not.

Returns :

TRUE if the coordinates are displayed in reduced values.

Since 3.6


visu_rendering_window_setAutoAdjust ()

gboolean            visu_rendering_window_setAutoAdjust (gboolean status);

If set, the camera auto adjust its zoom capability for the data to be full size at zoom level 1.

status :

a boolean.

Returns :

TRUE if the value has been changed.

Since 3.6


visu_rendering_window_getAutoAdjust ()

gboolean            visu_rendering_window_getAutoAdjust ();

The camera can be set to auto adjust its zoom capability for the data to be full size at zoom level 1.

Returns :

TRUE if the camera auto adjust on data loading.

Since 3.6

Signal Details

The "export" signal

void                user_function                      (VisuRenderingWindow *window,
                                                        gpointer             user_data)      : Run Last / Action

Signal emitted when the user ask for data export.

window :

the object emitting the signal.

user_data :

user data set when the signal handler was connected.

Since 3.6


The "open" signal

void                user_function                      (VisuRenderingWindow *window,
                                                        gpointer             user_data)      : Run Last / Action

Signal emitted when the user ask to open new data.

window :

the object emitting the signal.

user_data :

user data set when the signal handler was connected.

Since 3.6


The "reload" signal

void                user_function                      (VisuRenderingWindow *window,
                                                        gpointer             user_data)      : Run Last / Action

Signal emitted when the user ask to reload current data.

window :

the object emitting the signal.

user_data :

user data set when the signal handler was connected.

Since 3.6


The "show-action-dialog" signal

void                user_function                      (VisuRenderingWindow *window,
                                                        gpointer             user_data)      : Run Last / No Recursion / Action / No Hooks

Signal emitted when the user ask to show the action dialog.

window :

the object emitting the signal.

user_data :

user data set when the signal handler was connected.

Since 3.6


The "show-main-panel" signal

void                user_function                      (VisuRenderingWindow *window,
                                                        gpointer             user_data)      : Run Last / No Recursion / Action / No Hooks

Signal emitted when the user ask to raise the main panel.

window :

the object emitting the signal.

user_data :

user data set when the signal handler was connected.

Since 3.6