All pastes #467117 Raw Edit

Something

public text v1 · immutable
·published 2007-05-02 10:25 UTC
rendered paste body
#include <stdlib.h>
#include <gtk/gtk.h>

int on_mouse_over(GtkPaned *paned,  GdkEventButton *event, GtkPaned *vpane1) ;

void got_enter(GtkWidget        *paned,
               GdkEventCrossing *event,
               gpointer          user_data)
{
  printf("Hmmm...\n");
}

int on_mouse_over(GtkPaned *paned,  GdkEventButton *event, GtkPaned *vpane1)
{
  if(GTK_IS_PANED(paned))
    g_signal_emit_by_name(GTK_OBJECT(paned), "button_press_event");
  return TRUE;
  //  return FALSE;
  //  printf("%d",sig);
}


int main( int argc,
          char *argv[] )
{
  GtkWidget *window;
  GtkWidget *event_box;
  GtkWidget *label;
  GtkWidget *vpane1;
  GtkWidget *vpane2;
  GtkWidget *view1;
  GtkWidget *view2;
  GtkWidget *view3;
  GtkTextBuffer *buffer;

  gtk_init (&argc, &argv);

  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

  gtk_window_set_title (GTK_WINDOW (window), "Event Box");
  gtk_window_resize(GTK_WINDOW (window),300,300);

  g_signal_connect (G_OBJECT (window), "destroy",
                    G_CALLBACK (exit), NULL);

  //  gtk_container_set_border_width (GTK_CONTAINER (window), 10);

  /* Create an EventBox and add it to our toplevel window */
 event_box = gtk_event_box_new ();
  gtk_container_add (GTK_CONTAINER (window), event_box);

  /*-- Create the horizontal pane --*/
  vpane1 = gtk_vpaned_new();
  vpane2 = gtk_vpaned_new();

  view1 = gtk_text_view_new ();
  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view1));
  gtk_text_buffer_set_text (buffer, "Hello, this is pane1", -1);

  view2 = gtk_text_view_new ();
  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view2));
  gtk_text_buffer_set_text (buffer, "Hello, this is pane2", -1);

  view3 = gtk_text_view_new ();
  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view3));
  gtk_text_buffer_set_text (buffer, "Hello, this is pane3", -1);

  gtk_paned_add1(GTK_PANED(vpane1), view1);
  gtk_paned_add2(GTK_PANED(vpane1), vpane2);

  gtk_paned_add1(GTK_PANED(vpane2), view2);

  gtk_paned_add2(GTK_PANED(vpane2), view3);

  //  gtk_widget_set_events(event_box, GDK_ALL_EVENTS_MASK);
  gtk_container_add(GTK_CONTAINER(event_box), vpane1);

  //  gtk_signal_connect(GTK_OBJECT(event_box), "enter-notify-event", GTK_SIGNAL_FUNC(got_enter), vpane1);
  gtk_signal_connect(GTK_OBJECT(vpane1), "motion-notify-event", GTK_SIGNAL_FUNC(on_mouse_over), vpane1);

  gtk_widget_show (event_box);
  gtk_widget_show(vpane1);
  gtk_widget_show(vpane2);
  gtk_widget_show(view1);
  gtk_widget_show(view2);
  gtk_widget_show(view3);


  /* Yet one more thing you need an X window for ... */

  gtk_widget_realize (event_box);
  //  gdk_window_set_cursor (event_box->window, gdk_cursor_new (GDK_HAND1));

  gtk_widget_show (window);

  gtk_main ();

  return 0;
}


===Stack Trace===

#0  0x4b5aa36e in g_value_array_sort_with_data () from /usr/lib/libgobject-2.0.so.0
#1  0x4b59bc4b in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#2  0x4b59bea8 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#3  0x08048ca6 in on_mouse_over ()
#4  0x4b8c9151 in _gtk_marshal_BOOLEAN__BOXED (closure=0x80808e8, return_value=0xbfea4ff0, n_param_values=2, param_values=0xbfea5140, 
    invocation_hint=0xbfea5018, marshal_data=0x0) at gtkmarshalers.c:83
#5  0x4b586a28 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#6  0x4b59ad93 in g_signal_has_handler_pending () from /usr/lib/libgobject-2.0.so.0
#7  0x4b59ba36 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#8  0x4b59bfa0 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#9  0x4b9b2a04 in gtk_widget_event_internal (widget=0x8077800, event=0x8061288) at gtkwidget.c:3751
#10 0x4b8c78b9 in IA__gtk_propagate_event (widget=0x8077800, event=0x8061288) at gtkmain.c:2195
#11 0x4b8c7b90 in IA__gtk_main_do_event (event=0x8061288) at gtkmain.c:1424
#12 0x4bb60a62 in gdk_event_dispatch (source=0x0, callback=0, user_data=0x0) at gdkevents-x11.c:2291
#13 0x4b50d605 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#14 0x4b50ee08 in g_main_context_acquire () from /usr/lib/libglib-2.0.so.0
#15 0x4b50f12f in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#16 0x4b8c6f76 in IA__gtk_main () at gtkmain.c:1003
#17 0x08048fcb in main ()