tagging release
[dasher.git] / trunk / Src / Gtk2-Experimental / DasherComAid.cpp
blob2f2eab57dae40a54830e278d7b2903d473df04d0
1 #include "../Common/Common.h"
3 #include <gtk/gtk.h>
4 #include <gdk/gdk.h>
6 #ifdef GNOME_LIBS
7 #include <libgnome/libgnome.h>
8 #include <libgnomeui/libgnomeui.h>
9 #endif
11 #include <pango/pango.h>
13 #include <string.h>
15 #include "../Gtk2/GtkDasherControl.h"
17 extern "C" void insert_callback( GtkDasherControl *pDasherControl, const gchar *szText, gpointer pUserData );
18 extern "C" void delete_callback( GtkDasherControl *pDasherControl, const gchar *szText, gpointer pUserData );
20 int main( int argc, char **argv ) {
22 #ifdef GNOME_LIBS
23 gnome_program_init("Dasher", "0.1", LIBGNOMEUI_MODULE, argc, argv, GNOME_PARAM_NONE );
24 #endif
25 gtk_init( &argc, &argv );
27 GtkWidget *pWindow = gtk_window_new( GTK_WINDOW_TOPLEVEL );
28 gtk_window_fullscreen(GTK_WINDOW(pWindow));
30 GtkWidget *pEditBox;
31 pEditBox = gtk_text_view_new();
32 gtk_widget_set_size_request(pEditBox, -1, 128);
33 gtk_widget_modify_font(pEditBox, pango_font_description_from_string("Sans 36"));
35 GtkTextBuffer *pTextBuffer( gtk_text_view_get_buffer( GTK_TEXT_VIEW(pEditBox)));
37 GtkWidget *pDasherControl;
38 pDasherControl = gtk_dasher_control_new();
40 g_signal_connect(pDasherControl, "dasher_edit_insert", G_CALLBACK(insert_callback), pTextBuffer);
41 g_signal_connect(pDasherControl, "dasher_edit_delete", G_CALLBACK(delete_callback), pTextBuffer);
43 GtkWidget *pVBox;
44 pVBox = gtk_vbox_new(false, 0);
46 gtk_box_pack_start( GTK_BOX( pVBox ), pEditBox, false, false, 0 );
47 gtk_box_pack_start( GTK_BOX( pVBox ), pDasherControl, true, true, 0 );
49 gtk_container_add( GTK_CONTAINER( pWindow ), pVBox );
51 gtk_widget_show_all( pWindow );
53 gtk_main();
55 return 0;
58 extern "C" void insert_callback( GtkDasherControl *pDasherControl, const gchar *szText, gpointer pUserData ) {
59 gtk_text_buffer_insert_at_cursor( (GtkTextBuffer*)pUserData, szText, -1);
62 extern "C" void delete_callback( GtkDasherControl *pDasherControl, const gchar *szText, gpointer pUserData ) {
64 GtkTextIter *start = new GtkTextIter;
65 GtkTextIter *end = new GtkTextIter;
66 int length;
68 length = strlen( szText );
69 gtk_text_buffer_get_iter_at_mark( (GtkTextBuffer*)pUserData, end, gtk_text_buffer_get_insert( (GtkTextBuffer*)pUserData));
71 *start = *end;
73 gtk_text_iter_backward_chars(start, length);
75 gtk_text_buffer_delete( (GtkTextBuffer*)pUserData, start, end);