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:
committed by
Mathias Hasselmann
parent
68bf11d56d
commit
3acb459d2f
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user