Code:
#include <gtk/gtk.h>
GtkWidget *win_Main;
GtkWidget *scl_List;
GtkWidget *tbl_Main;
GtkListStore *str_Registry;
GtkWidget *trv_Registry;
GtkWidget *btn_key_Add;
GtkTreeViewColumn *col;
//---------------------------------------------------------
// AddTreeEntry
//---------------------------------------------------------
void AddTreeEntry()
{
GtkTreeIter iter;
GtkTreeModel *model;
model = gtk_tree_view_get_model(GTK_TREE_VIEW(trv_Registry));
gtk_list_store_append(GTK_LIST_STORE(model),
&iter);
gtk_list_store_set(GTK_LIST_STORE(model),
&iter,
0,
"John",
1,
"Doe",
2,
"Somewhere",
3,
"KS",
-1); //indicates the end
gtk_tree_view_set_model(GTK_TREE_VIEW(trv_Registry),
model);
return;
}
int main (int argc, char **argv)
{
gtk_init (&argc, &argv);
int NumColumns = 4;
//Window(win_Main)
win_Main = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(win_Main), //Casting window to set title
"GTK app");
g_signal_connect(win_Main, //widget responding to event
"delete_event", //
gtk_main_quit, //kill window is programmer named
NULL);
//Table(tbl_Main)
tbl_Main = gtk_table_new(2, 1, FALSE);
gtk_widget_show(tbl_Main);
gtk_container_add(GTK_CONTAINER(win_Main), tbl_Main);
//ScrollWindow(scl_List)
scl_List = gtk_scrolled_window_new(NULL,
NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scl_List),
GTK_POLICY_NEVER,
GTK_POLICY_ALWAYS);
gtk_table_attach(GTK_TABLE(tbl_Main),
scl_List,
0, 1, 0, 1,
(GtkAttachOptions)(GTK_EXPAND | GTK_FILL),
(GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0);
gtk_widget_show(scl_List);
//TreeView(trv_Registry)
trv_Registry = gtk_tree_view_new();
trv_Registry->name = "trv_Registry";
gtk_container_add(GTK_CONTAINER(scl_List),
trv_Registry);
str_Registry = gtk_list_store_new(4,
G_TYPE_STRING, //First
G_TYPE_STRING, //Last
G_TYPE_STRING, //City
G_TYPE_STRING); //State
gtk_tree_view_set_model(GTK_TREE_VIEW(trv_Registry),
GTK_TREE_MODEL(str_Registry));
g_object_unref(str_Registry);
//First
col = gtk_tree_view_column_new();
gtk_tree_view_column_set_title(col, "First");
gtk_tree_view_append_column(GTK_TREE_VIEW(trv_Registry), col);
//Last
col = gtk_tree_view_column_new();
gtk_tree_view_column_set_title(col, "Last");
gtk_tree_view_append_column(GTK_TREE_VIEW(trv_Registry), col);
//City
col = gtk_tree_view_column_new();
gtk_tree_view_column_set_title(col, "City");
gtk_tree_view_append_column(GTK_TREE_VIEW(trv_Registry), col);
//State
col = gtk_tree_view_column_new();
gtk_tree_view_column_set_title(col, "State");
gtk_tree_view_append_column(GTK_TREE_VIEW(trv_Registry), col);
gtk_widget_show(trv_Registry);
//Button(btn_key_Add)
btn_key_Add = gtk_button_new_with_label("Add");
gtk_widget_show(btn_key_Add);
gtk_table_attach(GTK_TABLE(tbl_Main),
btn_key_Add,
0, 1, 2, 3,
(GtkAttachOptions)(GTK_FILL),
(GtkAttachOptions)(GTK_FILL), 0, 2);
g_signal_connect(btn_key_Add,
"clicked",
G_CALLBACK(AddTreeEntry),
NULL);
gtk_widget_show_all (win_Main);
gtk_main ();
return 0;
}
Bookmarks