data_interpretor.h File Reference

Header file for the data interpretor. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define H_DI_DISPLAYED   FALSE
#define H_DI_BIG_ENDIAN   2
 Stands for big endian representation.
#define H_DI_MIDDLE_ENDIAN   4
 Stands for middle endian representation (http://en.wikipedia.org/wiki/Endianness#Middle-endian).
#define H_DI_LITTLE_ENDIAN   8
 Stands for little endian representation (this is the default).

Functions

void data_interpretor_init_interface (heraia_struct_t *main_struct)
 Inits the data interpretor structure and window with default values.
void refresh_data_interpretor_window (GtkWidget *hexwidget, gpointer data)
 Refreshes the data interpretor window with the new values.
void add_tab_in_data_interpretor (GtkNotebook *notebook, tab_t *tab)
 Testing things.
tab_tadd_new_tab_in_data_interpretor (GtkNotebook *notebook, guint index, const gchar *label, guint num_cols,...)
 Adds a new tab in the data interpretor window.
void add_new_row_to_tab (tab_t *tab, decode_generic_t *row)
 Adds a row to a particular tab.
gint di_get_selected_tab (heraia_struct_t *main_struct)
 Gets the selected tab (if any) from data interpretor's notebook.
void di_set_selected_tab (heraia_struct_t *main_struct, gint selected_tab)
 Sets the selected tab (if possible) to data interpretor's notebook.
gint di_get_stream_size (heraia_struct_t *main_struct)
 Gets the stream_size (if any) from data interpretor's window.
void di_set_stream_size (heraia_struct_t *main_struct, gint stream_size)
 Sets the stream size (if possible) to data interpretor's notebook.
gint di_get_endianness (heraia_struct_t *main_struct)
 Gets the endianness as selected in the radio group button.
void di_set_endianness (heraia_struct_t *main_struct, gint endianness)
 Sets the endianness as stated by the second parameter.

Detailed Description

Header file for the data interpretor.

Definition in file data_interpretor.h.


Define Documentation

#define H_DI_BIG_ENDIAN   2

Stands for big endian representation.

Definition at line 55 of file data_interpretor.h.

Referenced by change_endianness(), di_get_endianness(), and di_set_endianness().

#define H_DI_DISPLAYED   FALSE
Note:
Naming : H stands for Heraia DI stands for Data_Interpretor

Says whether data_interpretor is displayed or not

Todo:
this is used at initialisation time. We can add a new option to the program in order to say wether we want the data interpretor to be visible or not (regardless of options saved ?)

Definition at line 52 of file data_interpretor.h.

Referenced by init_window_property_struct().

#define H_DI_LITTLE_ENDIAN   8

Stands for little endian representation (this is the default).

Definition at line 57 of file data_interpretor.h.

Referenced by di_get_endianness(), di_set_endianness(), and which_endianness().

#define H_DI_MIDDLE_ENDIAN   4

Stands for middle endian representation (http://en.wikipedia.org/wiki/Endianness#Middle-endian).

Definition at line 56 of file data_interpretor.h.

Referenced by change_endianness(), di_get_endianness(), and di_set_endianness().


Function Documentation

void add_new_row_to_tab ( tab_t tab,
decode_generic_t row 
)

Adds a row to a particular tab.

Parameters:
tab : the tab to which we want to add the row
row : the row we want to add (make sure it has been initialized)

< the vbox to which we want to pack

< couple from which we want to pack the entry

Definition at line 409 of file data_interpretor.c.

References decode_t::entry, tab_t::nb_rows, tab_t::rows, and tab_t::vboxes.

Referenced by add_default_tabs().

Here is the caller graph for this function:

tab_t* add_new_tab_in_data_interpretor ( GtkNotebook *  notebook,
guint  index,
const gchar *  label,
guint  nb_cols,
  ... 
)

Adds a new tab in the data interpretor window.

Parameters:
notebook : the notebook to which we want to add this new tab
index : index of this new tab. If you rely on this make sure it's a primary key !
label : label of the tab
nb_cols : number of columns (including the first column of labels)
... : nb_cols arguments that will be the labels of the columns
Returns:
a newly malloced tab_t variable that remember everything about that new tab.

< tab structure that will remember everything !

< va_list arguments passed to create a new tab with those columns

< used to fetch arguments

< used to remember the columns labels (the arguments in GtkWidgets)

< used to remember vboxes (in order to be able to pack things later

< notebook tab's child container

< used for hpaned creation

< in case that we have more than 2 arguments

< used for vbox creation

< used for label creation in the new vboxes

Definition at line 320 of file data_interpretor.c.

References tab_t::col_labels, tab_t::index, tab_t::label, tab_t::nb_cols, tab_t::nb_rows, tab_t::rows, and tab_t::vboxes.

Referenced by add_default_tabs().

Here is the caller graph for this function:

void add_tab_in_data_interpretor ( GtkNotebook *  notebook,
tab_t tab 
)

Testing things.

void data_interpretor_init_interface ( heraia_struct_t main_struct  ) 

Inits the data interpretor structure and window with default values.

Warning:
Should be called only once at program's beginning

Definition at line 287 of file data_interpretor.c.

References add_default_tabs(), connect_data_interpretor_signals(), heraia_struct_t::current_DW, data_window_t::diw, heraia_get_widget(), xml_t::main, and heraia_struct_t::xmls.

Referenced by load_heraia_ui().

Here is the call graph for this function:

Here is the caller graph for this function:

gint di_get_endianness ( heraia_struct_t main_struct  ) 

Gets the endianness as selected in the radio group button.

Parameters:
main_struct : main structure
Returns:
a gint that represents the endianness (H_DI_LITTLE_ENDIAN, H_DI_MIDDLE_ENDIAN, H_DI_BIG_ENDIAN) or -1 if nothing was correct

Definition at line 617 of file data_interpretor.c.

References gtk_radio_button_get_active_from_widget(), H_DI_BIG_ENDIAN, H_DI_LITTLE_ENDIAN, H_DI_MIDDLE_ENDIAN, heraia_get_widget(), xml_t::main, and heraia_struct_t::xmls.

Referenced by save_di_preferences(), and which_endianness().

Here is the call graph for this function:

Here is the caller graph for this function:

gint di_get_selected_tab ( heraia_struct_t main_struct  ) 

Gets the selected tab (if any) from data interpretor's notebook.

Parameters:
main_struct : main structure
Returns:
A gint that represents the selected tab : >=0 if any < 0 otherwise

< data interpretor's notebook

< Selected tab in data interpretor's window

Definition at line 531 of file data_interpretor.c.

References heraia_get_widget(), xml_t::main, and heraia_struct_t::xmls.

Referenced by save_di_preferences().

Here is the call graph for this function:

Here is the caller graph for this function:

gint di_get_stream_size ( heraia_struct_t main_struct  ) 

Gets the stream_size (if any) from data interpretor's window.

Parameters:
main_struct : main structure
Returns:
A gint that represents the stream size : >=0 if any < 0 otherwise

< data interpretor's spin button

< stream size sat by the user

Definition at line 574 of file data_interpretor.c.

References heraia_get_widget(), xml_t::main, and heraia_struct_t::xmls.

Referenced by save_di_preferences(), and which_stream_size().

Here is the call graph for this function:

Here is the caller graph for this function:

void di_set_endianness ( heraia_struct_t main_struct,
gint  endianness 
)

Sets the endianness as stated by the second parameter.

Parameters:
main_struct : main structure
endianness : the endianness to be sat. Must be one of the following : (H_DI_LITTLE_ENDIAN, H_DI_MIDDLE_ENDIAN, H_DI_BIG_ENDIAN)

Definition at line 667 of file data_interpretor.c.

References gtk_radio_button_set_active(), H_DI_BIG_ENDIAN, H_DI_LITTLE_ENDIAN, H_DI_MIDDLE_ENDIAN, heraia_get_widget(), xml_t::main, and heraia_struct_t::xmls.

Referenced by load_di_preferences().

Here is the call graph for this function:

Here is the caller graph for this function:

void di_set_selected_tab ( heraia_struct_t main_struct,
gint  selected_tab 
)

Sets the selected tab (if possible) to data interpretor's notebook.

Parameters:
main_struct : main structure
selected_tab : the saved selected tab

< data interpretor's notebook

Definition at line 552 of file data_interpretor.c.

References heraia_struct_t::current_DW, heraia_get_widget(), xml_t::main, data_window_t::tab_displayed, and heraia_struct_t::xmls.

Referenced by load_di_preferences().

Here is the call graph for this function:

Here is the caller graph for this function:

void di_set_stream_size ( heraia_struct_t main_struct,
gint  stream_size 
)

Sets the stream size (if possible) to data interpretor's notebook.

Parameters:
main_struct : main structure
stream_size : the saved stream_size

< data interpretor's spin button

Definition at line 595 of file data_interpretor.c.

References heraia_get_widget(), xml_t::main, and heraia_struct_t::xmls.

Referenced by load_di_preferences().

Here is the call graph for this function:

Here is the caller graph for this function:

void refresh_data_interpretor_window ( GtkWidget *  widget,
gpointer  data 
)

Refreshes the data interpretor window with the new values.

Parameters:
widget : the widget caller (may be NULL here)
data : a gpointer to the main structure : main_struct, this must NOT be NULL !
Todo:
if speed is a matter, think about taking off this decode_parameters structure from here.

data interpretor window structure

Endianness is computed only once here

stream size is computed only once here

Definition at line 225 of file data_interpretor.c.

References heraia_struct_t::current_doc, heraia_struct_t::current_DW, window_prop_t::displayed, all_window_prop_t::main_dialog, new_decode_parameters_t(), refresh_all_tabs(), which_endianness(), which_stream_size(), and heraia_struct_t::win_prop.

Referenced by connect_data_interpretor_signals(), on_DIMenu_activate(), and refresh_event_handler().

Here is the call graph for this function:

Here is the caller graph for this function:

Generated on Fri Aug 20 09:15:40 2010 for Heraia by  doxygen 1.6.3