X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkorientable.c;h=0f72542473a24979c6ee1f234ba0ac392dce9bcc;hb=79695ee64d41c9aadfe2c6f18dc7dd1e3fd44852;hp=dfc0dd6faa8677303231739930e5cbee3c825a13;hpb=16877b4d7bef813a42643ae50c14b13dc8302b36;p=~andy%2Fgtk diff --git a/gtk/gtkorientable.c b/gtk/gtkorientable.c index dfc0dd6fa..0f7254247 100644 --- a/gtk/gtkorientable.c +++ b/gtk/gtkorientable.c @@ -16,14 +16,12 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library. If not, see . */ #include "config.h" -#include "gtkorientable.h" +#include "gtkorientableprivate.h" #include "gtkprivate.h" #include "gtktypebuiltins.h" #include "gtkintl.h" @@ -85,6 +83,9 @@ gtk_orientable_set_orientation (GtkOrientable *orientable, g_object_set (orientable, "orientation", orientation, NULL); + + if (GTK_IS_WIDGET (orientable)) + _gtk_orientable_set_style_classes (orientable); } /** @@ -111,3 +112,27 @@ gtk_orientable_get_orientation (GtkOrientable *orientable) return orientation; } + +void +_gtk_orientable_set_style_classes (GtkOrientable *orientable) +{ + GtkStyleContext *context; + GtkOrientation orientation; + + g_return_if_fail (GTK_IS_ORIENTABLE (orientable)); + g_return_if_fail (GTK_IS_WIDGET (orientable)); + + context = gtk_widget_get_style_context (GTK_WIDGET (orientable)); + orientation = gtk_orientable_get_orientation (orientable); + + if (orientation == GTK_ORIENTATION_HORIZONTAL) + { + gtk_style_context_add_class (context, GTK_STYLE_CLASS_HORIZONTAL); + gtk_style_context_remove_class (context, GTK_STYLE_CLASS_VERTICAL); + } + else + { + gtk_style_context_add_class (context, GTK_STYLE_CLASS_VERTICAL); + gtk_style_context_remove_class (context, GTK_STYLE_CLASS_HORIZONTAL); + } +}