static void mime_toggle_button_cb (GtkWidget *button, MimeView *mimeview) { gtk_widget_ref(button); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))) { gtk_arrow_set(GTK_ARROW(GTK_BIN(button)->child), GTK_ARROW_RIGHT, GTK_SHADOW_NONE); gtk_widget_hide(mimeview->icon_mainbox); gtk_widget_show(mimeview->ctree_mainbox); gtk_paned_set_position(GTK_PANED(mimeview->paned), mimeview->oldsize); gtkut_container_remove(GTK_CONTAINER(mimeview->icon_mainbox), button); gtk_box_pack_end(GTK_BOX(mimeview->ctree_mainbox), button, FALSE, FALSE, 0); gtk_paned_set_gutter_size(GTK_PANED(mimeview->paned), 6); } else { gtk_arrow_set(GTK_ARROW(GTK_BIN(button)->child), GTK_ARROW_LEFT, GTK_SHADOW_NONE); mimeview->oldsize = mimeview->ctree_mainbox->allocation.height; gtk_widget_hide(mimeview->ctree_mainbox); gtk_widget_show(mimeview->icon_mainbox); gtk_paned_set_position(GTK_PANED(mimeview->paned), 0); gtkut_container_remove(GTK_CONTAINER(mimeview->ctree_mainbox), button); gtk_box_pack_start(GTK_BOX(mimeview->icon_mainbox), button, FALSE, FALSE, 0); gtk_box_reorder_child(GTK_BOX(button->parent), button, 0); if (mimeview->opened) icon_list_toggle_by_mime_info (mimeview, gtk_ctree_node_get_row_data(GTK_CTREE(mimeview->ctree), mimeview->opened)); gtk_paned_set_gutter_size(GTK_PANED(mimeview->paned), 0); } gtk_widget_grab_focus(button); gtk_widget_unref(button); }
static void icon_list_clear (MimeView *mimeview) { GList *child; GtkAdjustment *adj; child = gtk_container_children(GTK_CONTAINER(mimeview->icon_vbox)); for (; child != NULL; child = g_list_next(child)) { gtkut_container_remove(GTK_CONTAINER(mimeview->icon_vbox), GTK_WIDGET(child->data)); } mimeview->icon_count = 0; adj = gtk_layout_get_vadjustment(GTK_LAYOUT(mimeview->icon_scroll)); adj->value = adj->lower; gtk_signal_emit_by_name(GTK_OBJECT (adj), "value_changed"); }
static void mimeview_change_view_type(MimeView *mimeview, MimeViewType type) { TextView *textview = mimeview->textview; ImageView *imageview = mimeview->imageview; GList *children; if (mimeview->type == type) return; children = gtk_container_get_children (GTK_CONTAINER(mimeview->mime_vbox)); if (children) { gtkut_container_remove(GTK_CONTAINER(mimeview->mime_vbox), GTK_WIDGET(children->data)); g_list_free(children); } switch (mimeview->type) { case MIMEVIEW_IMAGE: imageview_clear(mimeview->imageview); break; case MIMEVIEW_TEXT: textview_clear(mimeview->textview); break; default: break; } switch (type) { case MIMEVIEW_IMAGE: gtk_container_add(GTK_CONTAINER(mimeview->mime_vbox), GTK_WIDGET_PTR(imageview)); break; case MIMEVIEW_TEXT: gtk_container_add(GTK_CONTAINER(mimeview->mime_vbox), GTK_WIDGET_PTR(textview)); break; default: return; } mimeview->type = type; }