📄 hablist_view.c
字号:
// This file is part of MANTIS OS, Operating System// See http://mantis.cs.colorado.edu///// Copyright (C) 2003-2005 University of Colorado, Boulder//// This program is free software; you can redistribute it and/or// modify it under the terms of the mos license (see file LICENSE)#include <stdbool.h>#include <string.h>#include <glib.h>#include "gui_gtk.h" //provides gtk headers and get_widget#include "bionet.h"#include "model_gtk.h"#include "hablist_view.h"#include "cortex.h"GtkTreeStore *hab_model;GtkWidget *hab_treeview;static void hablist_setup_treeview();static void hablist_add_hab(bionet_hab_t *hab);void hablist_view_init(void){ hab_treeview = get_widget(xml, "treeview_hablist"); hablist_setup_treeview(); model_add_hab_register_func(hablist_add_hab);}static void hablist_setup_treeview(void){ GtkTreeViewColumn *column; GtkCellRenderer *renderer; // Setup the HAB treeview hab_model = gtk_tree_store_new(MAX_HAB_INDEX, G_TYPE_STRING); gtk_tree_view_set_model(GTK_TREE_VIEW(hab_treeview), GTK_TREE_MODEL(hab_model)); g_object_unref(hab_model); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes("HAB Name", renderer, "text", HAB_NAME, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(hab_treeview), column);}void hablist_add_hab(bionet_hab_t *hab){ GtkTreeIter iter; gchar hab_buf [256]; g_sprintf(hab_buf, "%s.%s", hab->type, hab->id); gtk_tree_store_append(hab_model, &iter, NULL); gtk_tree_store_set(hab_model, &iter, HAB_NAME, hab_buf, -1); debug("Got a new HAB: %s", hab_buf);}//SIGNAL HANDLERSvoid hab_selection_handler_helper(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data){ bionet_hab_t hab; gchar *hab_name; gtk_tree_model_get(model, iter, HAB_NAME, &hab_name, -1); debug("%s", hab_name); GSList *habs; bionet_list_habs_by_name_pattern(&habs, hab_name); g_free(hab_name); for(; habs != NULL; habs = habs -> next) { bionet_hab_t *hab = habs->data; model_select_hab(hab); } g_slist_free(habs);}void hab_selection_handler(GtkTreeView *treeview, GtkTreePath *arg1, GtkTreeViewColumn *arg2, gpointer user_data){ GtkTreeSelection *selected_list; selected_list = gtk_tree_view_get_selection(treeview); gtk_tree_selection_selected_foreach(selected_list, hab_selection_handler_helper, NULL); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -