/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* callbacks.c
* Copyright (C) wwsh 2008 <wwssir@gmail.com>
*
* callbacks.c is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* callbacks.c is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <gtk/gtk.h>
#include <stdlib.h>
#include <math.h>
#include "callbacks.h"
/* For testing propose use the local (not installed) glade file */
/* #define GLADE_FILE PACKAGE_DATA_DIR"/demo_1/glade/demo_1.glade" */
#define GLADE_FILE "demo_1.glade"
MainWindow* mwin;
static gint popup_handler_window(GtkWidget *widget, GdkEvent *event);
const gchar *default_folder_for_opening;
const gchar *default_folder_for_saving = "/home/wwsh";
const gchar *filename_for_existing_document;
gboolean user_edited_a_new_document = TRUE;
enum
{
TITLE_COLUMN,
AUTHOR_COLUMN,
CHECKED_COLUMN,
N_COLUMNS
};
void
MessageBox(gchar* str)
{
printf("messagebox\n");
GtkWidget *dialog;
dialog = gtk_message_dialog_new (mwin->window,
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_INFO,
GTK_BUTTONS_CLOSE,
"=> '%s'",
str);
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy (dialog);
}
void
tree_view_init()
{
GtkTreeStore *store = gtk_tree_store_new(N_COLUMNS, /* Total number of columns */
G_TYPE_STRING, /* Book title */
G_TYPE_STRING, /* Author */
G_TYPE_BOOLEAN); /* Is checked out? */
GtkTreeIter iter1; /* Parent iter */
GtkTreeIter iter2; /* Child iter */
gtk_tree_store_append (store, &iter1, NULL); /* Acquire a top-level iterator */
gtk_tree_store_set (store, &iter1,
TITLE_COLUMN, "The Art of Computer Programming",
AUTHOR_COLUMN, "Donald E. Knuth",
CHECKED_COLUMN, FALSE,
-1);
gtk_tree_store_append (store, &iter2, &iter1); /* Acquire a child iterator */
gtk_tree_store_set (store, &iter2,
TITLE_COLUMN, "Volume 1: Fundamental Algorithms",
CHECKED_COLUMN, TRUE,
-1);
gtk_tree_store_append (store, &iter2, &iter1);
gtk_tree_store_set (store, &iter2,
TITLE_COLUMN, "Volume 2: Seminumerical Algorithms",
CHECKED_COLUMN, TRUE,
-1);
gtk_tree_store_append (store, &iter2, &iter1);
gtk_tree_store_set (store, &iter2,
TITLE_COLUMN, "Volume 3: Sorting and Searching",
CHECKED_COLUMN, TRUE,
-1);
// 设置树视图的数据
gtk_tree_view_set_model(mwin->treeview, GTK_TREE_MODEL(store));
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
// Column Title
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes("Title",
renderer,
"text", TITLE_COLUMN,
NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW (mwin->treeview), column);
// Column Author
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes("Author",
renderer,
"text", AUTHOR_COLUMN,
NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW (mwin->treeview), column);
// Column Checked
renderer = gtk_cell_renderer_toggle_new();
column = gtk_tree_view_column_new_with_attributes("Checked Out",
renderer,
"active", CHECKED_COLUMN,
"radio", CHECKED_COLUMN,
NULL);
//gtk_cell_renderer_toggle_set_radio(renderer, TRUE);
//gtk_cell_renderer_toggle_set_active(renderer, TRUE);
gtk_tree_view_append_column(GTK_TREE_VIEW (mwin->treeview), column);
// combobox 设置组合框内容为store
// gtk_combo_box_set_model(mwin->p3_combobox, GTK_TREE_MODEL(store));
// combo box
gtk_combo_box_append_text(mwin->p3_combobox, "add a new item");
gtk_combo_box_append_text(mwin->p3_combobox, "remove the first item");
// combo box entry
gtk_combo_box_append_text(GTK_COMBO_BOX(mwin->p3_comboboxentry), "add a new item");
gtk_combo_box_append_text(GTK_COMBO_BOX(mwin->p3_comboboxentry), "remove the first item");
}
GtkWindow*
create_main_window(void)
{
default_folder_for_opening = g_get_home_dir();
default_folder_for_saving = g_get_home_dir();
mwin = g_new0(MainWindow, 1);
mwin->gxml = glade_xml_new (GLADE_FILE, NULL, NULL);
/* This is important */
glade_xml_signal_autoconnect (mwin->gxml);
mwin->window =
(GtkWindow*)glade_xml_get_widget(mwin->gxml, "window1");
mwin->aboutdlg =
(GtkAboutDialog*)glade_xml_get_widget(mwin->gxml, "aboutdialog");
mwin->tbr_new =
(GtkToolButton*)glade_xml_get_widget(mwin->gxml, "TBNew");
mwin->tbr_open =
(GtkToolButton*)glade_xml_get_widget(mwin->gxml, "TBOpen");
mwin->tbr_save =
(GtkToolButton*)glade_xml_get_widget(mwin->gxml, "TBSave");
mwin->btn_ok =
(GtkButton*)glade_xml_get_widget(mwin->gxml, "btn_OK");
mwin->btn_apply =
(GtkButton*)glade_xml_get_widget(mwin->gxml, "btn_Apply");
mwin->btn_undo =
(GtkButton*)glade_xml_get_widget(mwin->gxml, "btn_Undo");
mwin->treeview =
(GtkTreeView*)glade_xml_get_widget(mwin->gxml, "treeview");
mwin->progressbar =
(GtkProgressBar*)glade_xml_get_widget(mwin->gxml, "progressbar");
// page 1
mwin->p1_entry_FilePathName =
(GtkEntry*)glade_xml_get_widget(mwin->gxml, "page1_entry_FilePathName");
mwin->p1_btn_filechooser =
(GtkFileChooserButton*)glade_xml_get_widget(mwin->gxml, "page1_btn_filechooser");
mwin->p1_image =
(GtkImage*)glade_xml_get_widget(mwin->gxml, "page1_image");
// page 2
mwin->p2_textview =
(GtkTextView*)glade_xml_get_widget(mwin->gxml, "page2_textview");
mwin->p2_entry_text =
(GtkEntry*)glade_xml_get_widget(mwin->gxml, "page2_entry_text");
// page 3
mwin->p3_radiobutton1 =
(GtkRadioButton*)glade_xml_get_widget(mwin->gxml, "page3_rediobutton1");
mwin->p3_radiobutton2 =
(GtkRadioButton*)glade_xml_get_widget(mwin->gxml, "page3_rediobutton2");
mwin->p3_radiobutton3 =
(GtkRadioButton*)glade_xml_get_widget(mwin->gxml, "page3_rediobutton3");
mwin->p3_checkbutton1 =
(GtkCheckButton*)glade_xml_get_widget(mwin->gxml, "page3_checkbutton1");
mwin->p3_checkbutton2 =
(GtkCheckButton*)glade_xml_get_widget(mwin->gxml, "page3_checkbutton2");
mwin->p3_combobox =
(GtkComboBox*)glade_xml_get_widget(mwin->gxml, "page3_combobox1");
mwin->p3_comboboxentry =
(GtkComboBoxEntry*)glade_xml_get_widget(mwin->gxml, "page3_comboboxentry1");
mwin->p3_hscale =
(GtkHScale*)glade_xml_get_widget(mwin->gxml, "page3_hscale1");
mwin->p3_vscale =
(GtkVScale*)glade_xml_get_widget(mwin->gxml, "page3_vscale1");
/* connect the signals in the interface */
g_signal_connect(G_OBJECT(mwin->btn_ok), "clicked",
G_CALLBACK(on_btn_OK_clicked), NULL);
g_signal_connect(G_OBJECT(mwin->btn_apply), "clicked",
G_CALLBACK(on_btn_Apply_clicked), NULL);
g_signal_connect(G_OBJECT(mwin->btn_undo), "clicked",
G_CALLBACK(on_btn_Undo_clicked), NULL);
g_signal_connect(G_OBJECT(mwin->tbr_new), "clicked",
G_CALLBACK(on_New_clicked), NULL);
g_signal_connect(G_OBJECT(mwin->tbr_open), "clicked",
G_CALLBACK(on_Open_clicked), NULL);
g_signal_connect(G_OBJECT(mwin->tbr_save), "clicked",
G_CALLBACK(on_Save_clicked), NULL);
g_signal_connect(G_OBJECT(mwin->p1_btn_filechooser), "file-set",
G_CALLBACK(on_page1_btn_filechooser_file_set), NULL);
// tree
tree_view_init();
/* Setup the selection handler */
GtkTreeSelection *select;
select = gtk_tree_view_get_selection (GTK_TREE_VIEW (mwin->tre
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
demo_1-0.1.tar.gz (33个子文件)
demo_1-0.1
missing 11KB
ltmain.sh 195KB
COPYING 34KB
aclocal.m4 294KB
INSTALL 9KB
config.h.in 2KB
mkinstalldirs 2KB
intltool-merge.in 38KB
configure 794KB
ChangeLog 127B
install-sh 13KB
Makefile.in 22KB
depcomp 17KB
AUTHORS 0B
src
callbacks.h 2KB
main.c 2KB
callbacks.c 16KB
demo_1.glade 33KB
Makefile.in 17KB
Makefile.am 534B
1.png 31KB
configure.ac 871B
config.guess 44KB
po
ChangeLog 0B
POTFILES.in 68B
LINGUAS 48B
Makefile.in.in 7KB
README 0B
config.sub 32KB
NEWS 0B
intltool-update.in 30KB
intltool-extract.in 23KB
Makefile.am 495B
共 33 条
- 1
资源评论
- 追梦少年MeeGO2013-06-19编译不了,太老了
- fightvictory2012-03-21还可,不过内容有点陈旧,不是glade3的内容
- 工控波哥2013-05-31glade2的内容,刚好能用上!!!
wwssir
- 粉丝: 3
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功