summaryrefslogtreecommitdiffhomepage
path: root/mixgtk/mixgtk_device.c
diff options
context:
space:
mode:
Diffstat (limited to 'mixgtk/mixgtk_device.c')
-rw-r--r--mixgtk/mixgtk_device.c49
1 files changed, 20 insertions, 29 deletions
diff --git a/mixgtk/mixgtk_device.c b/mixgtk/mixgtk_device.c
index e701728..885c19c 100644
--- a/mixgtk/mixgtk_device.c
+++ b/mixgtk/mixgtk_device.c
@@ -1,7 +1,7 @@
/* -*-c-*- ---------------- mixgtk_device.c :
* actual types for mixgtk devices
* ------------------------------------------------------------------
- * $Id: mixgtk_device.c,v 1.22 2004/06/24 01:40:47 jao Exp $
+ * $Id: mixgtk_device.c,v 1.23 2004/06/30 14:07:53 jao Exp $
* ------------------------------------------------------------------
* Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
*
@@ -42,7 +42,6 @@
static const gchar *DEV_FORMAT_KEY_ = "Device.format";
/* device container */
-static GtkContainer *container_ = NULL;
static GtkNotebook *dev_nb_ = NULL;
/* devdir dialog */
static GtkWidget *devdir_dlg_ = NULL;
@@ -284,6 +283,7 @@ mixgtk_device_construct_gui_ (struct mixgtk_device_t *dev)
gtk_tree_view_new_with_model (GTK_TREE_MODEL (bindev->store));
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (dev->widget), FALSE);
+ gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (dev->widget), TRUE);
for (k = 0; k < BIN_DEV_COL_; ++k)
{
@@ -293,14 +293,14 @@ mixgtk_device_construct_gui_ (struct mixgtk_device_t *dev)
"text", k, NULL));
}
+
g_free (types);
}
g_assert (dev->widget);
gtk_container_add (GTK_CONTAINER (dev->scroll), dev->widget);
+ mixgtk_fontsel_set_font (MIX_FONT_DEVICES, dev->widget);
gtk_notebook_append_page (dev_nb_, dev->scroll, label);
- gtk_widget_set_style (dev->widget,
- gtk_widget_get_style (GTK_WIDGET (dev_nb_)));
gtk_widget_show (label);
gtk_widget_show (dev->scroll);
gtk_widget_show (dev->widget);
@@ -368,11 +368,11 @@ mixgtk_device_new_ (mix_device_type_t type)
}
/* init default devices */
-gboolean
-mixgtk_device_init (GtkContainer *container, mix_vm_t *vm)
+GtkWidget *
+mixgtk_device_init (mix_vm_t *vm)
{
- g_return_val_if_fail (container != NULL, FALSE);
- g_return_val_if_fail (vm != NULL, FALSE);
+ g_assert (vm != NULL);
+
vm_ = vm;
devdlg_ = NULL;
devdir_dlg_ = NULL;
@@ -392,22 +392,12 @@ mixgtk_device_init (GtkContainer *container, mix_vm_t *vm)
dev_nb_ = GTK_NOTEBOOK (gtk_notebook_new ());
gtk_notebook_set_tab_pos (dev_nb_, GTK_POS_RIGHT);
- gtk_notebook_set_scrollable (dev_nb_, TRUE);
- gtk_container_add (container, GTK_WIDGET (dev_nb_));
- }
- else if (container_)
- {
- gtk_widget_reparent (GTK_WIDGET (dev_nb_), GTK_WIDGET (container));
+ gtk_notebook_set_scrollable (dev_nb_, FALSE);
}
- container_ = container;
-
- gtk_widget_show (GTK_WIDGET (dev_nb_));
- gtk_widget_show (GTK_WIDGET (container_));
-
mixgtk_fontsel_set_font (MIX_FONT_DEVICES, GTK_WIDGET (dev_nb_));
- return TRUE;
+ return GTK_WIDGET (dev_nb_);
}
void
@@ -584,19 +574,20 @@ void
on_devices_font_activate ()
{
gint no = gtk_notebook_get_n_pages (dev_nb_);
- GtkWidget **w = g_new (GtkWidget *, 2 * no + 1);
- gint k;
+ GtkWidget **w = g_new (GtkWidget *, no + 1);
+ gint k, j;
- w[2 * no] = GTK_WIDGET (dev_nb_);
- for (k = 0; k < no; ++k)
+ for (k = 0, j = 0; k < no && j < mix_dev_INVALID; ++j)
{
- w[k] = gtk_notebook_get_nth_page (dev_nb_, k);
- w[k + no] = gtk_bin_get_child (GTK_BIN (w[k]));
- g_assert (w[k]);
- g_assert (w[k + no]);
+ struct mixgtk_device_t * dev =
+ (struct mixgtk_device_t *) mix_vm_get_device (vm_, j);
+ if (dev != NULL) w[k++] = dev->widget;
}
- mixgtk_fontsel_query_font (MIX_FONT_DEVICES, w, 2 * no + 1);
+ g_assert (k == no);
+ w[k] = GTK_WIDGET (dev_nb_);
+
+ mixgtk_fontsel_query_font (MIX_FONT_DEVICES, w, no + 1);
g_free (w);
}