Introduce GtkBaselinePolicy. Add missing symbols. Introduce

2007-06-28  Mathias Hasselmann  <mathias.hasselmann@gmx.de>

	* gtk/gtkenums.h: Introduce GtkBaselinePolicy.
	* gtk/gtk.symbols: Add missing symbols.
	* gtk/gtkextendedlayout.c, gtk/gtkextendedlayout.h:
	  Introduce gtk_extended_layout_get_single_baseline.

svn path=/branches/extended-layout/; revision=18267
This commit is contained in:
Mathias Hasselmann
2007-06-27 23:43:55 +00:00
committed by Mathias Hasselmann
parent 68bf11d56d
commit 3acb459d2f
5 changed files with 83 additions and 0 deletions

View File

@@ -1,3 +1,10 @@
2007-06-28 Mathias Hasselmann <mathias.hasselmann@gmx.de>
* gtk/gtkenums.h: Introduce GtkBaselinePolicy.
* gtk/gtk.symbols: Add missing symbols.
* gtk/gtkextendedlayout.c, gtk/gtkextendedlayout.h:
Introduce gtk_extended_layout_get_single_baseline.
2007-06-28 Mathias Hasselmann <mathias.hasselmann@gmx.de>
* gtk/gtkbin.c: Prevent undefined behaviour when

View File

@@ -1320,6 +1320,18 @@ gtk_expander_set_use_underline
#endif
#endif
#if IN_HEADER(__GTK_EXTENDED_LAYOUT_H__)
#if IN_FILE(__GTK_EXTENDED_LAYOUT_C__)
gtk_extended_layout_get_type G_GNUC_CONST
gtk_extended_layout_get_features
gtk_extended_layout_get_height_for_width
gtk_extended_layout_get_width_for_height
gtk_extended_layout_get_natural_size
gtk_extended_layout_get_baselines
gtk_extended_layout_get_single_baseline
#endif
#endif
#if IN_HEADER(__GTK_FILE_CHOOSER_H__)
#if IN_FILE(__GTK_FILE_CHOOSER_C__)
gtk_file_chooser_add_filter

View File

@@ -82,6 +82,15 @@ typedef enum
GTK_BUTTONBOX_CENTER
} GtkButtonBoxStyle;
/* Baseline alignment policy */
typedef enum
{
GTK_BASELINE_NONE,
GTK_BASELINE_FIRST,
GTK_BASELINE_AVERAGE,
GTK_BASELINE_LAST
} GtkBaselinePolicy;
/* Curve types */
typedef enum
{

View File

@@ -164,3 +164,56 @@ gtk_extended_layout_get_baselines (GtkExtendedLayout *layout,
g_return_val_if_fail (iface->get_baselines, -1);
return iface->get_baselines(layout, baselines);
}
/**
* gtk_extended_layout_get_single_baseline:
* @layout: a #GtkExtendedLayout
* @policy: specifies the policy for choosing a baseline
*
* Queries a single baseline of the layout item.
*
* Since: 2.14
**/
gint
gtk_extended_layout_get_single_baseline (GtkExtendedLayout *layout,
GtkBaselinePolicy policy)
{
gint *baselines = NULL;
gint offset = -1;
gint count, i;
g_return_val_if_fail (GTK_BASELINE_NONE != policy, -1);
count = gtk_extended_layout_get_baselines (layout, &baselines);
if (count > 0)
{
switch (policy)
{
case GTK_BASELINE_NONE:
break;
case GTK_BASELINE_FIRST:
offset = baselines [0];
break;
case GTK_BASELINE_LAST:
offset = baselines [count - 1];
break;
case GTK_BASELINE_AVERAGE:
for (i = 0, offset = 0; i < count; ++i)
offset += baselines[i];
offset = (offset + count - 1) / count;
break;
}
g_free (baselines);
}
return offset;
}
#define __GTK_EXTENDED_LAYOUT_C__
#include "gtkaliasdef.c"

View File

@@ -84,6 +84,8 @@ void gtk_extended_layout_get_natural_size (GtkExtendedL
GtkRequisition *requisition);
gint gtk_extended_layout_get_baselines (GtkExtendedLayout *layout,
gint **baselines);
gint gtk_extended_layout_get_single_baseline (GtkExtendedLayout *layout,
GtkBaselinePolicy policy);
G_END_DECLS