/////**********************************************************************
/////	函数名称	:	GtkWidget *build_scrolled_win()
/////	
/////	函数功能	:	创  建  scrolled滚动窗口及文本框    
/////									
/////   返 回 值	:	Send_scrolled_win
/////**********************************************************************
GtkWidget *build_scrolled_win()
{
	//GtkWidget *text;
	GtkWidget *scrolled;

	Send_scrolled_win = gtk_scrolled_window_new(NULL,NULL);
	Send_textview = gtk_text_view_new();                                          
	gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(Send_textview),GTK_WRAP_WORD);	  
	gtk_text_view_set_justification(GTK_TEXT_VIEW(Send_textview),GTK_JUSTIFY_LEFT);
	gtk_text_view_set_editable(GTK_TEXT_VIEW(Send_textview),TRUE);					
	gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(Send_textview),TRUE);			
	gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(Send_textview),5);			
	gtk_text_view_set_pixels_below_lines(GTK_TEXT_VIEW(Send_textview),5);			
	gtk_text_view_set_pixels_inside_wrap(GTK_TEXT_VIEW(Send_textview),5);			
	gtk_text_view_set_left_margin(GTK_TEXT_VIEW(Send_textview),10);					
	gtk_text_view_set_right_margin(GTK_TEXT_VIEW(Send_textview),10);				
	Send_buffer =  gtk_text_view_get_buffer(GTK_TEXT_VIEW(Send_textview));	

	//////////**********************************************************************************************字体、颜色 的消息循环
	g_signal_connect(G_OBJECT(font), "clicked", G_CALLBACK(select_font),(gpointer)Send_textview);
	g_signal_connect(G_OBJECT(font_color), "clicked", G_CALLBACK(select_color),(gpointer)Send_textview);//将color对象与clicked相关联,回调函数为select_font
	gtk_container_add(GTK_CONTAINER(Send_scrolled_win),Send_textview);

	return Send_scrolled_win;
}
Exemple #2
0
void expand_lines()
{
	LOG(LOG_DEBUG, "IN : expand_lines()");

	line_space ++;

	gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(main_view), line_space);
	gtk_text_view_set_pixels_inside_wrap(GTK_TEXT_VIEW(main_view), line_space);
	if(current_result != NULL){
		show_result(current_result, FALSE, TRUE);
	}

	save_preference();

	LOG(LOG_DEBUG, "OUT : expand_lines()");
}
Exemple #3
0
/**
 * 创建更多信息对话框.
 */
GtkWidget *HelpDialog::CreateMoreDialog()
{
        char *labels[] = {_("Help"), _("Contributers"), _("..."), NULL};
        char *text[] = {
                _("Project Home: \nhttp://code.google.com/p/iptux/\n\n"
                  "User and Developer Group: \nhttps://groups.google.com/group/iptux/\n\n"
                  "Note that you can get help form the project wiki page.\n\n"
                  "If you find no solutions in any of the existed documents, "
                  "feel free to drop a email at [email protected], "
                  "lots of users and developers would be glade to help about your problems."),
                _("It's an honor that iptux was contributed voluntarilly by many people. "
                  "Without your help, iptux could never make it.\n\n"
                  "Especially, Here's some we would like to thank much:\n\n"
                  "ChenGang\n"
                  "<*****@*****.**>\n"
                  "<*****@*****.**>\n"
                  "<*****@*****.**>\n"
                  "<*****@*****.**>\n"
                  "<*****@*****.**>\n"
                  "..."),
                _("...")
        };
        GtkWidget *dialog;
        GtkWidget *frame, *sw;
        GtkWidget *notebook, *label, *view;
        GtkTextBuffer *buffer;
        gint page;

        dialog = gtk_dialog_new_with_buttons(_("More About Iptux"), NULL,
                                 GTK_DIALOG_NO_SEPARATOR,
                                 GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL);
        gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
        gtk_widget_set_size_request(dialog, 500, 350);

        frame = gtk_frame_new(NULL);
        gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
        gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), frame, TRUE, TRUE, 0);
        gtk_container_set_border_width(GTK_CONTAINER(frame), 3);

        notebook = gtk_notebook_new();
        gtk_container_add(GTK_CONTAINER(frame), notebook);

        page = 0;
        while (labels[page]) {
                sw = gtk_scrolled_window_new(NULL, NULL);
                gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
                                 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
                gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw),
                                                         GTK_SHADOW_ETCHED_IN);
                label = gtk_label_new(labels[page]);
                gtk_notebook_append_page(GTK_NOTEBOOK(notebook), sw, label);
                view = gtk_text_view_new();
                gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(view), GTK_WRAP_WORD);
                gtk_container_add(GTK_CONTAINER(sw), view);

                gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(view), FALSE);
                gtk_text_view_set_indent(GTK_TEXT_VIEW(view), 20);
                gtk_text_view_set_pixels_inside_wrap(GTK_TEXT_VIEW(view), 5);
                gtk_text_view_set_editable (GTK_TEXT_VIEW(view), FALSE);

                buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view));
                gtk_text_buffer_set_text(buffer, text[page], -1);

                page++;
        }

        return dialog;
}
Exemple #4
0
gint chat(void)
{
GtkWidget *window_chat;
GtkWidget *vpaned;
GtkWidget *Send_scrolled_win, *Rcv_scrolled_win;
GtkWidget *sendbutton, *closebutton, *recordsbutton, *docbutton;
GtkWidget *table_chat;


//Send=(struct chat *)malloc(sizeof (struct chat));
//Recv=(struct chat *)malloc(sizeof (struct chat));

Send->choose = 'e';
Recv->choose = 'e';
records->choose = 'i';                                                                  //gaibian
//char* ip ="10.3.2.133";
//strcpy(Send->ip, ip);
Send->send_id = myid;
//Send->target_id = 5;

strcpy(Send->nickname, mynickname);
printf("%s\n",Send->nickname);
//printf("%s\n",Send->ip);


window_chat = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window_chat), "Paned Windows");
g_signal_connect (G_OBJECT (window_chat), "destroy",
G_CALLBACK (close_current_window), window_chat);
gtk_container_set_border_width (GTK_CONTAINER (window_chat), 5);
gtk_widget_set_size_request (GTK_WIDGET (window_chat), 550, 450);
gtk_window_set_position(GTK_WINDOW(window_chat),GTK_WIN_POS_CENTER);


/* 上添加垂直分栏窗口构件 */
vpaned = gtk_vpaned_new ();
gtk_container_add (GTK_CONTAINER (window_chat), vpaned);
gtk_widget_show (vpaned);
gtk_paned_set_position(GTK_PANED(vpaned), 260);

//设置滚轮
Send_scrolled_win = gtk_scrolled_window_new(NULL,NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(Send_scrolled_win),
GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
//gtk_scrolled_window_set_placement (GTK_SCROLLED_WINDOW(Send_scrolled_win), GTK_CORNER_BOTTOM_LEFT);
Rcv_scrolled_win = gtk_scrolled_window_new(NULL,NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(Rcv_scrolled_win),
GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
//gtk_scrolled_window_set_placement (GTK_SCROLLED_WINDOW(Rcv_scrolled_win), GTK_CORNER_BOTTOM_LEFT);


//设置显示消息栏
Rcv_textview = gtk_text_view_new();
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(Rcv_textview),GTK_WRAP_WORD);
gtk_text_view_set_justification(GTK_TEXT_VIEW(Rcv_textview),GTK_JUSTIFY_LEFT);
gtk_text_view_set_editable(GTK_TEXT_VIEW(Rcv_textview),TRUE);
gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(Rcv_textview),TRUE);
gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(Rcv_textview),5);
gtk_text_view_set_pixels_below_lines(GTK_TEXT_VIEW(Rcv_textview),5);
gtk_text_view_set_pixels_inside_wrap(GTK_TEXT_VIEW(Rcv_textview),5);
gtk_text_view_set_left_margin(GTK_TEXT_VIEW(Rcv_textview),10);
gtk_text_view_set_right_margin(GTK_TEXT_VIEW(Rcv_textview),10);
Rcv_buffer =  gtk_text_view_get_buffer(GTK_TEXT_VIEW(Rcv_textview));
gtk_paned_pack1 (GTK_PANED (vpaned), Rcv_scrolled_win, FALSE, TRUE);
gtk_container_add(GTK_CONTAINER(Rcv_scrolled_win),Rcv_textview);
gtk_widget_show (Rcv_textview);

//在分栏的下栏中添加表
table_chat = gtk_table_new (20, 20, TRUE);
gtk_paned_pack2 (GTK_PANED (vpaned), table_chat, FALSE, TRUE);
gtk_widget_show (table_chat);

//设置输入栏
Send_textview = gtk_text_view_new();
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(Send_textview),GTK_WRAP_WORD);
gtk_text_view_set_justification(GTK_TEXT_VIEW(Send_textview),GTK_JUSTIFY_LEFT);
gtk_text_view_set_editable(GTK_TEXT_VIEW(Send_textview),TRUE);
gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(Send_textview),TRUE);
gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(Send_textview),5);
gtk_text_view_set_pixels_below_lines(GTK_TEXT_VIEW(Send_textview),5);
gtk_text_view_set_pixels_inside_wrap(GTK_TEXT_VIEW(Send_textview),5);
gtk_text_view_set_left_margin(GTK_TEXT_VIEW(Send_textview),10);
gtk_text_view_set_right_margin(GTK_TEXT_VIEW(Send_textview),10);
Send_buffer =  gtk_text_view_get_buffer(GTK_TEXT_VIEW(Send_textview));
gtk_table_attach_defaults (GTK_TABLE (table_chat), Send_scrolled_win, 0, 20, 3, 16);
gtk_container_add(GTK_CONTAINER(Send_scrolled_win),Send_textview);
gtk_widget_show (Send_textview);
gtk_widget_grab_focus (Send_textview);

//聊天记录
recordsbutton = gtk_button_new_with_label("聊天记录");
g_signal_connect (G_OBJECT (recordsbutton), "clicked",
G_CALLBACK (show_records), NULL);
gtk_table_attach_defaults (GTK_TABLE (table_chat), recordsbutton, 16, 20, 0, 3);
gtk_widget_show (recordsbutton);

docbutton = gtk_button_new_with_label("文件");
g_signal_connect (G_OBJECT (docbutton), "clicked",
G_CALLBACK (send_data), NULL);
gtk_table_attach_defaults (GTK_TABLE (table_chat), docbutton, 13, 15, 0, 3);
gtk_widget_show (docbutton);

//设置关闭发送按钮
closebutton = gtk_button_new_with_label("关闭");
g_signal_connect (G_OBJECT (closebutton), "clicked",
G_CALLBACK (close_current_window), window_chat);
gtk_table_attach_defaults (GTK_TABLE (table_chat), closebutton, 12, 16, 16, 20);
gtk_widget_show (closebutton);
sendbutton = gtk_button_new_with_label("发送");
g_signal_connect (G_OBJECT (sendbutton), "clicked",
G_CALLBACK (send_msg), Send_textview);
gtk_table_attach_defaults (GTK_TABLE (table_chat), sendbutton, 16, 20, 16, 20);
gtk_widget_show (sendbutton);

gtk_widget_show_all(window_chat);

return 0;
}
Exemple #5
0
GtkWidget *create_main_view()
{
	gint nmenu_items;	
	gint i;

	LOG(LOG_DEBUG, "IN : create_main_view()");

	dict_scroll = gtk_scrolled_window_new (NULL, NULL);
	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (dict_scroll),
					GTK_POLICY_AUTOMATIC,
					GTK_POLICY_AUTOMATIC);


	create_text_buffer();

	main_view = gtk_text_view_new_with_buffer(text_buffer);

	// You must continue to grab event.
	// Otherwise, event stops when the cursor is at the area with no character.
	g_signal_connect(G_OBJECT(main_view),"motion_notify_event",
			 G_CALLBACK(motion_notify_event), (gpointer)NULL);
	
	g_signal_connect(G_OBJECT(main_view),"button_press_event",
			 G_CALLBACK(button_press_event), (gpointer)NULL);

	g_signal_connect(G_OBJECT(main_view),"leave_notify_event",
			 G_CALLBACK(leave_notify_event), (gpointer)NULL);

	
	gtk_text_view_set_editable(GTK_TEXT_VIEW(main_view), FALSE);
	gtk_text_view_set_left_margin(GTK_TEXT_VIEW(main_view), 10);
	gtk_text_view_set_right_margin(GTK_TEXT_VIEW(main_view), 10);
	gtk_text_view_set_pixels_inside_wrap(GTK_TEXT_VIEW(main_view), line_space);
	gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(main_view), FALSE);
	gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(main_view), GTK_WRAP_WORD);
	gtk_text_view_set_border_window_size(GTK_TEXT_VIEW(main_view), GTK_TEXT_WINDOW_LEFT, 1);
	gtk_text_view_set_border_window_size(GTK_TEXT_VIEW(main_view), GTK_TEXT_WINDOW_RIGHT, 1);
	gtk_text_view_set_border_window_size(GTK_TEXT_VIEW(main_view), GTK_TEXT_WINDOW_TOP, 1);
	gtk_text_view_set_border_window_size(GTK_TEXT_VIEW(main_view), GTK_TEXT_WINDOW_BOTTOM, 1);

	if(line_space < 1)
		line_space = 3;

	gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(main_view), line_space);


	gtk_container_add (GTK_CONTAINER (dict_scroll), main_view);

	nmenu_items = sizeof (text_menu_items) / sizeof (text_menu_items[0]);
	for(i=0 ; i<nmenu_items ; i++){
		text_menu_items[i].path = _(text_menu_items[i].path);
	}
	text_item_factory = gtk_item_factory_new (GTK_TYPE_MENU, "<text>", 
						  NULL);
	gtk_item_factory_create_items (text_item_factory, nmenu_items, 
				       text_menu_items, NULL);


	LOG(LOG_DEBUG, "OUT : create_main_view()");
	return(dict_scroll);
}
GtkWidget *
fill_stream_info(proto_type type, unsigned int pid, unsigned int seq_id)
{
	GtkWidget *vbox;
	GtkWidget *hbox;
	GtkWidget *sw;
	GtkWidget *treeview;
	GtkWidget *next_button, *apply_button, *quit_button;
	GtkTreeModel *stream_model;
	GtkWidget *frame;
	GtkWidget *text_view;

	frame = gtk_frame_new(NULL);
	gtk_frame_set_label_align(GTK_FRAME(frame), 0.5, 0.5);
	gtk_widget_set_size_request(frame, 300, 200);

	vbox = gtk_vbox_new(FALSE, 5);
	gtk_container_add(GTK_CONTAINER(frame), vbox);

	gtk_box_pack_start(GTK_BOX(vbox),
	                   gtk_label_new("Edit Protocol fields"),
	                   FALSE, FALSE, 0);

	sw = gtk_scrolled_window_new(NULL, NULL);
	gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw),
	                                    GTK_SHADOW_ETCHED_IN);
	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
	                               GTK_POLICY_AUTOMATIC,
	                               GTK_POLICY_AUTOMATIC);
	gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);

	/* create models */
	stream_model = create_stream_model(type, pid, seq_id);

	/* create tree view */
	treeview = gtk_tree_view_new_with_model(stream_model);
	gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE);
	gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)),
	                            GTK_SELECTION_SINGLE);

	add_proto_values_column(GTK_TREE_VIEW(treeview), stream_model);

	/* Create a multiline text widget. */
	text_view = gtk_text_view_new();
	gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_view), 20);
	gtk_text_view_set_right_margin(GTK_TEXT_VIEW(text_view), 20);
	gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(
	                                    text_view), GTK_WRAP_WORD_CHAR);
	gtk_text_view_set_pixels_inside_wrap(GTK_TEXT_VIEW(text_view), 0);
	gtk_widget_set_tooltip_text(GTK_WIDGET(text_view),
	                            "[L4 HEADER + PAYLOAD]\nInput only hex values(0123456789ABCDEF)");

	/* Obtaining the buffer associated with the widget. */
	l4_pl_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_view));
	/* Set the default buffer text. */

	if (type == TYPE_UDP) {
		udp_reference = g_object_ref(treeview);
		udp_treeview = treeview;
		udp_sw = sw;

		usr_def_reference = g_object_ref(text_view);
		l4_text_view = text_view;
		l4_buffer = l4_pl_buffer;
	}

	g_object_unref(stream_model);

	gtk_container_add(GTK_CONTAINER(sw), treeview);

	/* some buttons */
	hbox = gtk_hbox_new(TRUE, 4);
	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);

	next_button = gtk_button_new_with_label("Next");
	g_signal_connect(next_button, "clicked",
	                 G_CALLBACK(switch_stream_editor_page), notebook);

	gtk_box_pack_start(GTK_BOX(hbox), next_button, TRUE, TRUE, 0);

	apply_button = gtk_button_new_with_label("Apply");
	g_signal_connect(apply_button, "clicked",
	                 G_CALLBACK(apply_stream_callback), NULL);

	gtk_box_pack_start(GTK_BOX(hbox), apply_button, TRUE, TRUE, 0);

	quit_button = gtk_button_new_with_label("Close");

	g_signal_connect(quit_button,
	                 "clicked",
	                 G_CALLBACK(close_window_callback),
	                 G_OBJECT(stream_window));

	gtk_box_pack_start(GTK_BOX(hbox), quit_button, TRUE, TRUE, 0);

	/* put everything into a scrolled window */
	return GTK_WIDGET(frame);
}
Exemple #7
0
static void create_popup_window(){

	GdkModifierType mask;
	gint pos_x, pos_y;
	gint pointer_x, pointer_y;
	gint root_x, root_y;
	GdkWindow *root_win = NULL;
	gint window_width, window_height;

	GtkWidget *vbox;
	GtkWidget *hbox;
	GtkWidget *eventbox;
	GtkWidget *image;
	GtkWidget *frame;
	GtkWidget *separator;

#ifdef __WIN32__
	HWND hWnd;
	long nStyle;
#endif

	LOG(LOG_DEBUG, "IN : create_popup_window()");

#ifdef __WIN32__
	root_x = GetSystemMetrics(SM_CXSCREEN);
	root_y = GetSystemMetrics(SM_CYSCREEN);
#else
	root_win = gdk_window_foreign_new (GDK_ROOT_WINDOW ());
	gdk_window_get_size(root_win, &root_x, &root_y);
#endif

	// If there already is an window, use that position.
	// Move if the window is out of the screen.
//	gdk_window_get_position(popup->window, &pos_x, &pos_y);
//	gtk_widget_destroy(popup);
//	redraw = TRUE;

	window_width = popup_width;
	window_height = popup_height;

	// If there is no window, determine from the mouse position.
	gdk_window_get_pointer(root_win, &pointer_x, &pointer_y, &mask);
	pos_x = pointer_x + align_x;
	pos_y = pointer_y + align_y;

	if(pos_x + window_width > root_x){
		pos_x = root_x - window_width;
	}
	
	if(bshow_popup_title) {
		if(pos_y + window_height + title_height > root_y){
			pos_y = root_y - window_height - title_height;
		}
	} else {
		if(pos_y + window_height > root_y){
			pos_y = root_y - window_height;
		}
	}

	popup = gtk_widget_new (GTK_TYPE_WINDOW,
				"type", GTK_WINDOW_TOPLEVEL,
				 "allow-shrink", TRUE,
				 "allow-grow", TRUE,
				 "default-width", window_width,
				 "default-height", window_height,

				NULL);
	gtk_window_move(GTK_WINDOW(popup), pos_x, pos_y);
	gtk_window_set_wmclass(GTK_WINDOW(popup), "Popup", "EBView");
	g_signal_connect(G_OBJECT(popup), "delete_event",
			 G_CALLBACK(close_popup), NULL);


	vbox = gtk_vbox_new(FALSE, 0);
	gtk_container_add (GTK_CONTAINER (popup), vbox);


	if(bshow_popup_title){

		frame = gtk_frame_new(NULL);
		gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
		gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0);

		hbox = gtk_hbox_new(FALSE, 0);
		gtk_container_add( GTK_CONTAINER(frame), hbox);


		eventbox = gtk_event_box_new();
		gtk_box_pack_start(GTK_BOX(hbox), eventbox, FALSE, FALSE, 2);
		g_signal_connect(G_OBJECT(eventbox),"button_press_event",
				 G_CALLBACK(title_click_event), (gpointer)"p");
		image_pushpin = create_image(IMAGE_PUSH_OFF);
		gtk_container_add( GTK_CONTAINER(eventbox), image_pushpin);

		separator = gtk_vseparator_new();
		gtk_box_pack_start(GTK_BOX(hbox), separator, FALSE, FALSE, 0);


		eventbox = gtk_event_box_new();
		gtk_box_pack_start(GTK_BOX(hbox), eventbox, FALSE, FALSE, 2);
		g_signal_connect(G_OBJECT(eventbox),"button_press_event",
				 G_CALLBACK(title_click_event), (gpointer)"<");
		image = create_image(IMAGE_SMALL_LEFT);
		gtk_container_add( GTK_CONTAINER(eventbox), image);

		separator = gtk_vseparator_new();
		gtk_box_pack_start(GTK_BOX(hbox), separator, FALSE, FALSE, 0);

		eventbox = gtk_event_box_new();
		gtk_box_pack_start(GTK_BOX(hbox), eventbox, TRUE, TRUE, 2);
		g_signal_connect(G_OBJECT(eventbox),"button_press_event",
				 G_CALLBACK(title_click_event), (gpointer)"t");
		g_signal_connect(G_OBJECT(eventbox),"button_release_event",
				 G_CALLBACK(title_release_event), (gpointer)NULL);
		g_signal_connect(G_OBJECT(eventbox),"motion_notify_event",
				 G_CALLBACK(title_motion_event), (gpointer)NULL);

		title_label = gtk_label_new("x of x");
		gtk_container_add( GTK_CONTAINER(eventbox), title_label);

		separator = gtk_vseparator_new();
		gtk_box_pack_start(GTK_BOX(hbox), separator, FALSE, FALSE, 0);

		eventbox = gtk_event_box_new();
		gtk_box_pack_end(GTK_BOX(hbox), eventbox, FALSE, FALSE, 2);
		g_signal_connect(G_OBJECT(eventbox),"button_press_event",
				 G_CALLBACK(title_click_event), (gpointer)"X");

		image = create_image(IMAGE_SMALL_CLOSE);
		gtk_container_add( GTK_CONTAINER(eventbox), image);

		separator = gtk_vseparator_new();
		gtk_box_pack_end(GTK_BOX(hbox), separator, FALSE, FALSE, 0);

		eventbox = gtk_event_box_new();
		gtk_box_pack_end(GTK_BOX(hbox), eventbox, FALSE, FALSE, 2);
		g_signal_connect(G_OBJECT(eventbox),"button_press_event",
				 G_CALLBACK(title_click_event), (gpointer)">");

		image = create_image(IMAGE_SMALL_RIGHT);
		gtk_container_add( GTK_CONTAINER(eventbox), image);

	}

	frame = gtk_frame_new(NULL);
	gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
	gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);

	popup_scroll = gtk_scrolled_window_new (NULL, NULL);
	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (popup_scroll),
					GTK_POLICY_AUTOMATIC,
					GTK_POLICY_AUTOMATIC);

	gtk_container_add(GTK_CONTAINER(frame), popup_scroll);

	popup_view = gtk_text_view_new_with_buffer(text_buffer);
	gtk_text_view_set_editable(GTK_TEXT_VIEW(popup_view), FALSE);
	gtk_text_view_set_left_margin(GTK_TEXT_VIEW(popup_view), 5);
	gtk_text_view_set_right_margin(GTK_TEXT_VIEW(popup_view), 5);
	gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(popup_view), 3);
	gtk_text_view_set_pixels_inside_wrap(GTK_TEXT_VIEW(popup_view), 3);
	gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(popup_view), FALSE);
	gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(popup_view), GTK_WRAP_WORD);


	g_signal_connect(G_OBJECT(popup_view),"motion_notify_event",
			 G_CALLBACK(motion_notify_event), (gpointer)NULL);
	
	g_signal_connect(G_OBJECT(popup_view),"button_press_event",
			 G_CALLBACK(popup_button_press_event), (gpointer)NULL);

	gtk_container_add (GTK_CONTAINER (popup_scroll), popup_view);

#ifndef __WIN32__
	gtk_widget_realize(popup);
	gdk_window_set_decorations(popup->window, 0);
#endif

	gtk_widget_show_all(popup);

#ifdef __WIN32__
	hWnd = GDK_WINDOW_HWND(popup->window);
	nStyle = GetWindowLong(hWnd, GWL_STYLE );
	nStyle &= ~WS_CAPTION;
	SetWindowLong(hWnd, GWL_STYLE, nStyle );
	SetWindowPos(hWnd,
		     HWND_TOPMOST,
		     pos_x, pos_y,
		     window_width, window_height,
		     SWP_FRAMECHANGED);
#endif

	bbutton_down = FALSE;
	bpushpin_down = FALSE;

	LOG(LOG_DEBUG, "OUT : create_popup_window()");

}
Exemple #8
0
void dump_text(){

	GtkWidget *button;
	GtkWidget *hbox;
	GtkWidget *label;
	GtkWidget *text_scroll;
	gchar buff[16];

	LOG(LOG_DEBUG, "IN : dump_text()");

	if(text_dlg == NULL){

		text_dlg = gtk_dialog_new();
		gtk_window_set_title (GTK_WINDOW (text_dlg), "Text dump");

		g_signal_connect(G_OBJECT (text_dlg), "delete_event",
				 G_CALLBACK(text_close), NULL);

		button = gtk_button_new_with_label(_("Close"));
		GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
		gtk_box_pack_start(GTK_BOX (GTK_DIALOG (text_dlg)->action_area), button,
				   TRUE, TRUE, 0);
		g_signal_connect(G_OBJECT (button), "clicked",
				 G_CALLBACK(text_close), (gpointer)text_dlg);

		hbox = gtk_hbox_new(FALSE,5);
		gtk_box_pack_start (GTK_BOX(GTK_DIALOG(text_dlg)->vbox)
				    , hbox, FALSE, FALSE, 0);
		
		label = gtk_label_new(_("page"));
		gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0);
		
		entry_text_page = gtk_entry_new();
		gtk_widget_set_size_request(entry_text_page,100,20);
		gtk_box_pack_start (GTK_BOX(hbox), entry_text_page, FALSE, FALSE, 0);
		g_signal_connect(G_OBJECT(entry_text_page), "activate",
				 G_CALLBACK(text_dump_page), (gpointer)NULL);
		
		label = gtk_label_new(_("offset"));
		gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0);
		
		entry_text_offset = gtk_entry_new();
		gtk_widget_set_size_request(entry_text_offset,100,20);
		gtk_box_pack_start (GTK_BOX(hbox), entry_text_offset, FALSE, FALSE, 0);
		g_signal_connect(G_OBJECT(entry_text_offset), "activate",
				 G_CALLBACK(text_dump_page), (gpointer)NULL);

		
		hbox = gtk_hbox_new(FALSE,5);
		gtk_box_pack_start (GTK_BOX(GTK_DIALOG(text_dlg)->vbox)
				    , hbox, FALSE, FALSE, 0);


		text_scroll = gtk_scrolled_window_new (NULL, NULL);
		gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (text_scroll),
						GTK_POLICY_AUTOMATIC,
						GTK_POLICY_AUTOMATIC);
		gtk_widget_set_size_request(text_scroll, 600, 400);
		gtk_box_pack_start(GTK_BOX(hbox),
				   text_scroll,FALSE, FALSE, 0);

		text_buffer = gtk_text_buffer_new (NULL);
		text_view = gtk_text_view_new_with_buffer(text_buffer);

		gtk_text_view_set_editable(GTK_TEXT_VIEW(text_view), FALSE);
		gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_view), 10);
		gtk_text_view_set_right_margin(GTK_TEXT_VIEW(text_view), 10);
		gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(text_view), 3);
		gtk_text_view_set_pixels_inside_wrap(GTK_TEXT_VIEW(text_view), 3);
		gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(text_view), FALSE);
		gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text_view), GTK_WRAP_WORD);
  

		gtk_widget_set_size_request(text_view, 500, 400);
		gtk_container_add (GTK_CONTAINER (text_scroll), text_view);

		gtk_widget_show_all(text_dlg);

	}

	if((current_result != NULL) && (current_result->type == RESULT_TYPE_EB)){
		sprintf(buff, "%08x",current_result->data.eb.pos_text.page);
		gtk_entry_set_text(GTK_ENTRY(entry_text_page), buff);
		sprintf(buff, "%08x",current_result->data.eb.pos_text.offset);
		gtk_entry_set_text(GTK_ENTRY(entry_text_offset), buff);
		text_dump_page(NULL, NULL);
	}

	LOG(LOG_DEBUG, "OUT : dump_text()");
}