1 #include "../Common/Common.h"
7 #include <libgnome/libgnome.h>
8 #include <libgnomeui/libgnomeui.h>
11 #include <pango/pango.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
) {
23 gnome_program_init("Dasher", "0.1", LIBGNOMEUI_MODULE
, argc
, argv
, GNOME_PARAM_NONE
);
25 gtk_init( &argc
, &argv
);
27 GtkWidget
*pWindow
= gtk_window_new( GTK_WINDOW_TOPLEVEL
);
28 gtk_window_fullscreen(GTK_WINDOW(pWindow
));
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
);
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
);
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
;
68 length
= strlen( szText
);
69 gtk_text_buffer_get_iter_at_mark( (GtkTextBuffer
*)pUserData
, end
, gtk_text_buffer_get_insert( (GtkTextBuffer
*)pUserData
));
73 gtk_text_iter_backward_chars(start
, length
);
75 gtk_text_buffer_delete( (GtkTextBuffer
*)pUserData
, start
, end
);