Use the adequate orientation

This commit is contained in:
Pierre Pronchery 2014-03-17 22:56:57 +09:00
parent dc7cd33599
commit a79012d1e8

View File

@ -1,5 +1,5 @@
/* $Id$ */ /* $Id$ */
/* Copyright (c) 2010-2013 Pierre Pronchery <khorben@defora.org> */ /* Copyright (c) 2010-2014 Pierre Pronchery <khorben@defora.org> */
/* This file is part of DeforaOS Pager Panel */ /* This file is part of DeforaOS Pager Panel */
/* This program is free software: you can redistribute it and/or modify /* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -39,7 +39,7 @@ typedef struct _PanelApplet
{ {
PanelAppletHelper * helper; PanelAppletHelper * helper;
GtkWidget * hbox; GtkWidget * box;
GtkWidget ** widgets; GtkWidget ** widgets;
size_t widgets_cnt; size_t widgets_cnt;
@ -111,16 +111,21 @@ static Pager * _pager_init(PanelAppletHelper * helper, GtkWidget ** widget)
return NULL; return NULL;
} }
pager->helper = helper; pager->helper = helper;
/* FIXME choose the right orientation */ #if GTK_CHECK_VERSION(3, 0, 0)
pager->hbox = gtk_hbox_new(TRUE, 0); pager->box = gtk_box_new(helper->orientation, 0);
g_signal_connect(pager->hbox, "screen-changed", G_CALLBACK( gtk_box_set_homogeneous(GTK_BOX(helper->box), TRUE);
#else
pager->box = (helper->orientation == GTK_ORIENTATION_HORIZONTAL)
? gtk_hbox_new(TRUE, 0) : gtk_vbox_new(TRUE, 0);
#endif
g_signal_connect(pager->box, "screen-changed", G_CALLBACK(
_on_screen_changed), pager); _on_screen_changed), pager);
pager->widgets = NULL; pager->widgets = NULL;
pager->widgets_cnt = 0; pager->widgets_cnt = 0;
pager->screen = NULL; pager->screen = NULL;
pager->display = NULL; pager->display = NULL;
pager->root = NULL; pager->root = NULL;
*widget = pager->hbox; *widget = pager->box;
return pager; return pager;
} }
@ -130,7 +135,7 @@ static void _pager_destroy(Pager * pager)
{ {
if(pager->root != NULL) if(pager->root != NULL)
gdk_window_remove_filter(pager->root, _on_filter, pager); gdk_window_remove_filter(pager->root, _on_filter, pager);
gtk_widget_destroy(pager->hbox); gtk_widget_destroy(pager->box);
free(pager); free(pager);
} }
@ -270,14 +275,14 @@ static void _pager_do(Pager * pager)
gtk_widget_set_sensitive(pager->widgets[i], FALSE); gtk_widget_set_sensitive(pager->widgets[i], FALSE);
g_signal_connect(G_OBJECT(pager->widgets[i]), "clicked", g_signal_connect(G_OBJECT(pager->widgets[i]), "clicked",
G_CALLBACK(_on_clicked), pager); G_CALLBACK(_on_clicked), pager);
gtk_box_pack_start(GTK_BOX(pager->hbox), pager->widgets[i], gtk_box_pack_start(GTK_BOX(pager->box), pager->widgets[i],
FALSE, TRUE, 0); FALSE, TRUE, 0);
} }
free(names); free(names);
if(pager->widgets_cnt <= 1) if(pager->widgets_cnt <= 1)
gtk_widget_hide(pager->hbox); gtk_widget_hide(pager->box);
else else
gtk_widget_show_all(pager->hbox); gtk_widget_show_all(pager->box);
} }