## Utility functions

Utility functions — Various internal utility functions

## Functions

gpointer | (*GDupFunc) ()
void | gnt_util_get_text_bound ()
int | gnt_util_onscreen_width ()
const char * | gnt_util_onscreen_width_to_pointer ()
char * | gnt_util_onscreen_fit_string ()
GHashTable * | g_hash_table_duplicate ()
gboolean | gnt_boolean_handled_accumulator ()
GntWidget * | gnt_widget_bindings_view ()
void | gnt_util_parse_widgets ()
gboolean | gnt_util_parse_xhtml_to_textview ()
void | gnt_util_set_trigger_widget ()

## Description

## Functions

### GDupFunc ()

    gpointer
    (*GDupFunc) (gconstpointer data);

### gnt_util_get_text_bound ()

    void
    gnt_util_get_text_bound (const char *text,
                             int *width,
                             int *height);

Compute the width and height required to view the text on the screen.

#### Parameters

text | The text to be displayed. |
width | The width required is set here, if not `NULL`. |
height | The height required is set here, if not `NULL`. |

### gnt_util_onscreen_width ()

    int
    gnt_util_onscreen_width (const char *start,
                             const char *end);

Get the onscreen width of a string, or a substring.

#### Parameters

start | The beginning of the string. |
end | The end of the string. The width returned is the width upto (but not including) end. If end is NULL, then start is considered as a `NULL`-terminated string. |

#### Returns

The on-screen width of the string.

### gnt_util_onscreen_width_to_pointer ()

    const char *
    gnt_util_onscreen_width_to_pointer (const char *str,
                                        int len,
                                        int *w);

Computes and returns the string after a specific number of onscreen characters.

#### Parameters

str | The string. |
len | The length to consider. If non-positive, the entire screenlength is used. |
w | The actual width of the string upto the returned offset, if not `NULL`. |

#### Returns

The string after len offset.

### gnt_util_onscreen_fit_string ()

    char *
    gnt_util_onscreen_fit_string (const char *string,
                                  int maxw);

Inserts newlines in 'string' where necessary so that its onscreen width is no more than 'maxw'.

#### Parameters

string | The string. |
maxw | The width that the string should fit into. If maxw is <= 0, then the available maximum width is used. |

#### Returns

A newly allocated string that needs to be freed by the caller.

### g_hash_table_duplicate ()

    GHashTable *
    g_hash_table_duplicate (GHashTable *src,
                            GHashFunc hash,
                            GEqualFunc equal,
                            GDestroyNotify key_d,
                            GDestroyNotify value_d,
                            GDupFunc key_dup,
                            GDupFunc value_dup);

Duplicate the contents of a hastable.

#### Parameters

src | The source hashtable. |
hash | The hash-function to use. | [scope call]
equal | The hash-equal function to use. |
key_d | The key-destroy function to use. |
value_d | The value-destroy function to use. |
key_dup | The function to use to duplicate the key. | [scope call]
value_dup | The function to use to duplicate the value. | [scope call]

#### Returns

The new hashtable.

[transfer full]

### gnt_boolean_handled_accumulator ()

    gboolean
    gnt_boolean_handled_accumulator (GSignalInvocationHint *ihint,
                                     GValue *return_accu,
                                     const GValue *handler_return,
                                     gpointer dummy);

`gnt_boolean_handled_accumulator` has been deprecated since version 2.14.0 and should not be used in newly-written code.

Use `g_signal_accumulator_true_handled()` instead.

To be used with g_signal_new. Look in the key_pressed signal-definition in gntwidget.c for usage.

### gnt_widget_bindings_view ()

    GntWidget *
    gnt_widget_bindings_view (GntWidget *widget);

`gnt_widget_bindings_view` has been deprecated since version 2.14.0 and should not be used in newly-written code.

Use `gnt_bindable_bindings_view()` instead.

Get a helpful display about the bindings of a widget.

#### Parameters

widget | The widget to get bindings for. |

#### Returns

Returns a GntTree populated with "key" -> "binding" for the widget.

[transfer full]

### gnt_util_parse_widgets ()

    void
    gnt_util_parse_widgets (const char *string,
                            int num,
                            ...);

Parse widgets from an XML description. For example,

    GntWidget *win, *button;
    gnt_util_parse_widgets("\
         <vwindow id='0' fill='0' align='2'>     \
             <label>This is a test</label>       \
             <button id='1'>OK</button>          \
         </vwindow>",
      2, &win, &button);

#### Parameters

string | The XML string. |
num | The number of widgets to return, followed by 'num' GntWidget ** |

### gnt_util_parse_xhtml_to_textview ()

    gboolean
    gnt_util_parse_xhtml_to_textview (const char *string,
                                      GntTextView *tv);

Parse an XHTML string and add it in a GntTextView with appropriate text flags.

#### Parameters

string | The XHTML string |
tv | The GntTextView |

#### Returns

`TRUE` if the string was added to the textview properly, `FALSE` otherwise.

Since: 2.2.0

### gnt_util_set_trigger_widget ()

    void
    gnt_util_set_trigger_widget (GntWidget *widget,
                                 const char *key,
                                 GntWidget *button);

Make some keypress activate a button when some key is pressed with 'wid' in focus.

#### Parameters

widget | The widget |
key | The key to trigger the button |
button | The button to trigger |

Since: 2.1.0