summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorJay Painter <jpaint@src.gnome.org>1998-02-19 02:59:55 +0000
committerJay Painter <jpaint@src.gnome.org>1998-02-19 02:59:55 +0000
commit8923d60dba0e1990ca066ef7cf9b6b065a4c4b63 (patch)
tree53a7b15dfb88079748c6d6038432b9071a5c630b /gtk
parent9ad922290cc7495298099a4b97029942b0ce34c3 (diff)
downloadgtk+-8923d60dba0e1990ca066ef7cf9b6b065a4c4b63.tar.gz
CList signal revert (right back at you! *ouch*)
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtkclist.c83
-rw-r--r--gtk/gtkclist.h18
-rw-r--r--gtk/gtkfilesel.c110
-rw-r--r--gtk/testgtk.c87
4 files changed, 71 insertions, 227 deletions
diff --git a/gtk/gtkclist.c b/gtk/gtkclist.c
index 361dbf13e0..79e174357c 100644
--- a/gtk/gtkclist.c
+++ b/gtk/gtkclist.c
@@ -92,11 +92,10 @@ COLUMN_FROM_XPIXEL (GtkCList * clist,
(clist)->column[(clist)->columns - 1].area.width + \
COLUMN_INSET + CELL_SPACING)
+
/* Signals */
enum
{
- MOUSE_CLICK,
- MOUSE_DOUBLE_CLICK,
SELECT_ROW,
UNSELECT_ROW,
CLICK_COLUMN,
@@ -106,7 +105,7 @@ enum
typedef void (*GtkCListSignal1) (GtkObject * object,
gint arg1,
gint arg2,
- gint arg3,
+ GdkEventButton * arg3,
gpointer data);
typedef void (*GtkCListSignal2) (GtkObject * object,
@@ -165,11 +164,11 @@ static void size_allocate_columns (GtkCList * clist);
static void real_select_row (GtkCList * clist,
gint row,
gint column,
- gint button);
+ GdkEventButton * event);
static void real_unselect_row (GtkCList * clist,
gint row,
gint column,
- gint button);
+ GdkEventButton * event);
static gint get_selection_info (GtkCList * clist,
gint x,
gint y,
@@ -249,11 +248,13 @@ static void gtk_clist_marshal_signal_2 (GtkObject * object,
GtkArg * args);
/* Fill in data after widget is realized and has style */
+
static void add_style_data (GtkCList * clist);
static GtkContainerClass *parent_class = NULL;
static gint clist_signals[LAST_SIGNAL] = {0};
+
guint
gtk_clist_get_type ()
{
@@ -290,34 +291,21 @@ gtk_clist_class_init (GtkCListClass * klass)
container_class = (GtkContainerClass *) klass;
parent_class = gtk_type_class (gtk_container_get_type ());
- clist_signals[MOUSE_CLICK] =
- gtk_signal_new ("mouse_click",
- GTK_RUN_LAST,
- object_class->type,
- GTK_SIGNAL_OFFSET (GtkCListClass, mouse_click),
- gtk_clist_marshal_signal_1,
- GTK_TYPE_NONE, 3, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT);
- clist_signals[MOUSE_DOUBLE_CLICK] =
- gtk_signal_new ("mouse_double_click",
- GTK_RUN_LAST,
- object_class->type,
- GTK_SIGNAL_OFFSET (GtkCListClass, mouse_double_click),
- gtk_clist_marshal_signal_1,
- GTK_TYPE_NONE, 3, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT);
+
clist_signals[SELECT_ROW] =
gtk_signal_new ("select_row",
GTK_RUN_LAST,
object_class->type,
GTK_SIGNAL_OFFSET (GtkCListClass, select_row),
gtk_clist_marshal_signal_1,
- GTK_TYPE_NONE, 3, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT);
+ GTK_TYPE_NONE, 3, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_POINTER);
clist_signals[UNSELECT_ROW] =
gtk_signal_new ("unselect_row",
GTK_RUN_LAST,
object_class->type,
GTK_SIGNAL_OFFSET (GtkCListClass, unselect_row),
gtk_clist_marshal_signal_1,
- GTK_TYPE_NONE, 3, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT);
+ GTK_TYPE_NONE, 3, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_POINTER);
clist_signals[CLICK_COLUMN] =
gtk_signal_new ("click_column",
GTK_RUN_LAST,
@@ -347,8 +335,6 @@ gtk_clist_class_init (GtkCListClass * klass)
container_class->remove = NULL;
container_class->foreach = gtk_clist_foreach;
- klass->mouse_click = NULL;
- klass->mouse_double_click = NULL;
klass->select_row = real_select_row;
klass->unselect_row = real_unselect_row;
klass->click_column = NULL;
@@ -366,10 +352,9 @@ gtk_clist_marshal_signal_1 (GtkObject * object,
rfunc = (GtkCListSignal1) func;
- (*rfunc) (object,
- GTK_VALUE_INT (args[0]),
+ (*rfunc) (object, GTK_VALUE_INT (args[0]),
GTK_VALUE_INT (args[1]),
- GTK_VALUE_INT (args[2]),
+ GTK_VALUE_POINTER (args[2]),
func_data);
}
@@ -383,8 +368,7 @@ gtk_clist_marshal_signal_2 (GtkObject * object,
rfunc = (GtkCListSignal2) func;
- (*rfunc) (object,
- GTK_VALUE_INT (args[0]),
+ (*rfunc) (object, GTK_VALUE_INT (args[0]),
func_data);
}
@@ -828,7 +812,7 @@ gtk_clist_set_row_height (GtkCList * clist,
if (GTK_WIDGET_REALIZED (clist))
{
text_height = height - (GTK_WIDGET (clist)->style->font->ascent +
- GTK_WIDGET (clist)->style->font->descent + 1);
+ GTK_WIDGET (clist) ->style->font->descent + 1);
clist->row_center_offset = (text_height / 2) + GTK_WIDGET (clist)->style->font->ascent + 1.5;
}
@@ -1441,7 +1425,7 @@ gtk_clist_select_row (GtkCList * clist,
if (column < -1 || column >= clist->columns)
return;
- gtk_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW], row, column, 0);
+ gtk_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW], row, column, NULL);
}
void
@@ -1457,7 +1441,7 @@ gtk_clist_unselect_row (GtkCList * clist,
if (column < -1 || column >= clist->columns)
return;
- gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], row, column, 0);
+ gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], row, column, NULL);
}
gint
@@ -1920,25 +1904,8 @@ gtk_clist_button_press (GtkWidget * widget,
y = event->y;
if (get_selection_info (clist, x, y, &row, &column))
- {
- switch (event->type)
- {
- case GDK_BUTTON_PRESS:
- gtk_signal_emit (GTK_OBJECT (clist), clist_signals[MOUSE_CLICK],
- row, column, event->button);
- gtk_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW],
- row, column, event->button);
- break;
-
- case GDK_2BUTTON_PRESS:
- gtk_signal_emit (GTK_OBJECT (clist), clist_signals[MOUSE_DOUBLE_CLICK],
- row, column, event->button);
- break;
-
- default:
- break;
- }
- }
+ gtk_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW],
+ row, column, event);
return FALSE;
}
@@ -2757,7 +2724,7 @@ static void
real_select_row (GtkCList * clist,
gint row,
gint column,
- gint button)
+ GdkEventButton * event)
{
gint i;
GList *list;
@@ -2783,7 +2750,8 @@ real_select_row (GtkCList * clist,
if (clist_row->state == GTK_STATE_SELECTED)
{
clist_row->state = GTK_STATE_NORMAL;
- gtk_clist_unselect_row (clist, i, column);
+ gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW],
+ i, column, event);
}
else
{
@@ -2796,7 +2764,8 @@ real_select_row (GtkCList * clist,
}
else if (clist_row->state == GTK_STATE_SELECTED)
{
- gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], i, column, button);
+ gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW],
+ i, column, event);
}
i++;
@@ -2824,7 +2793,8 @@ real_select_row (GtkCList * clist,
}
else if (clist_row->state == GTK_STATE_SELECTED)
{
- gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], i, column, button);
+ gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW],
+ i, column, event);
}
i++;
@@ -2844,7 +2814,8 @@ real_select_row (GtkCList * clist,
if (clist_row->state == GTK_STATE_SELECTED)
{
clist_row->state = GTK_STATE_NORMAL;
- gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], i, column, button);
+ gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW],
+ i, column, event);
}
else
{
@@ -2872,7 +2843,7 @@ static void
real_unselect_row (GtkCList * clist,
gint row,
gint column,
- gint button)
+ GdkEventButton * event)
{
GtkCListRow *clist_row;
diff --git a/gtk/gtkclist.h b/gtk/gtkclist.h
index fb3d3afdd7..164e2070c5 100644
--- a/gtk/gtkclist.h
+++ b/gtk/gtkclist.h
@@ -110,7 +110,7 @@ struct _GtkCList
/* dynamicly allocated array of column structures */
GtkCListColumn *column;
- /* the scrolling window and it's height and width to
+ /*the scrolling window and it's height and width to
* make things a little speedier */
GdkWindow *clist_window;
gint clist_window_width;
@@ -153,26 +153,14 @@ struct _GtkCListClass
{
GtkContainerClass parent_class;
- void (*mouse_click) (GtkCList * clist,
- gint row,
- gint column,
- gint button);
-
- void (*mouse_double_click) (GtkCList * clist,
- gint row,
- gint column,
- gint button);
-
void (*select_row) (GtkCList * clist,
gint row,
gint column,
- gint button);
-
+ GdkEventButton * event);
void (*unselect_row) (GtkCList * clist,
gint row,
gint column,
- gint button);
-
+ GdkEventButton * event);
void (*click_column) (GtkCList * clist,
gint column);
diff --git a/gtk/gtkfilesel.c b/gtk/gtkfilesel.c
index 2001e2d937..6ac0326598 100644
--- a/gtk/gtkfilesel.c
+++ b/gtk/gtkfilesel.c
@@ -286,27 +286,15 @@ static gint gtk_file_selection_key_press (GtkWidget *widget,
static void gtk_file_selection_file_button (GtkWidget *widget,
gint row,
gint column,
- gint button,
+ GdkEventButton *bevent,
gpointer user_data);
-static void gtk_file_selection_file_button_double (GtkWidget *widget,
- gint row,
- gint column,
- gint button,
- gpointer user_data);
-
static void gtk_file_selection_dir_button (GtkWidget *widget,
gint row,
gint column,
- gint button,
+ GdkEventButton *bevent,
gpointer data);
-static void gtk_file_selection_dir_button_double (GtkWidget *widget,
- gint row,
- gint column,
- gint button,
- gpointer data);
-
static void gtk_file_selection_populate (GtkFileSelection *fs,
gchar *rel_path,
gint try_complete);
@@ -440,9 +428,6 @@ gtk_file_selection_init (GtkFileSelection *filesel)
gtk_signal_connect (GTK_OBJECT (filesel->dir_list), "select_row",
(GtkSignalFunc) gtk_file_selection_dir_button,
(gpointer) filesel);
- gtk_signal_connect (GTK_OBJECT (filesel->dir_list), "mouse_double_click",
- (GtkSignalFunc) gtk_file_selection_dir_button_double,
- (gpointer) filesel);
gtk_clist_set_policy (GTK_CLIST (filesel->dir_list), GTK_POLICY_ALWAYS, GTK_POLICY_AUTOMATIC);
gtk_clist_column_titles_passive (GTK_CLIST (filesel->dir_list));
gtk_container_border_width (GTK_CONTAINER (filesel->dir_list), 5);
@@ -455,9 +440,6 @@ gtk_file_selection_init (GtkFileSelection *filesel)
gtk_signal_connect (GTK_OBJECT (filesel->file_list), "select_row",
(GtkSignalFunc) gtk_file_selection_file_button,
(gpointer) filesel);
- gtk_signal_connect (GTK_OBJECT (filesel->file_list), "mouse_double_click",
- (GtkSignalFunc) gtk_file_selection_file_button_double,
- (gpointer) filesel);
gtk_clist_set_policy (GTK_CLIST (filesel->file_list), GTK_POLICY_ALWAYS, GTK_POLICY_AUTOMATIC);
gtk_clist_column_titles_passive (GTK_CLIST (filesel->file_list));
gtk_container_border_width (GTK_CONTAINER (filesel->file_list), 5);
@@ -1110,32 +1092,10 @@ gtk_file_selection_update_history_menu (GtkFileSelection *fs,
static void
gtk_file_selection_file_button (GtkWidget *widget,
- gint row,
- gint column,
- gint button,
- gpointer user_data)
-{
- GtkFileSelection *fs = NULL;
- gchar *filename;
-
- g_return_if_fail (GTK_IS_CLIST (widget));
-
- fs = user_data;
- g_return_if_fail (fs != NULL);
- g_return_if_fail (GTK_IS_FILE_SELECTION (fs));
-
- filename = gtk_clist_get_row_data (GTK_CLIST (fs->file_list), row);
-
- if (filename)
- gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename);
-}
-
-static void
-gtk_file_selection_file_button_double (GtkWidget *widget,
- gint row,
- gint column,
- gint button,
- gpointer user_data)
+ gint row,
+ gint column,
+ GdkEventButton *bevent,
+ gpointer user_data)
{
GtkFileSelection *fs = NULL;
gchar *filename;
@@ -1148,15 +1108,29 @@ gtk_file_selection_file_button_double (GtkWidget *widget,
filename = gtk_clist_get_row_data (GTK_CLIST (fs->file_list), row);
- if (filename)
- gtk_button_clicked (GTK_BUTTON (fs->ok_button));
+ if (bevent && filename)
+ {
+ switch (bevent->type)
+ {
+ case GDK_BUTTON_PRESS:
+ gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename);
+ break;
+
+ case GDK_2BUTTON_PRESS:
+ gtk_button_clicked (GTK_BUTTON (fs->ok_button));
+ break;
+
+ default:
+ break;
+ }
+ }
}
static void
gtk_file_selection_dir_button (GtkWidget *widget,
gint row,
gint column,
- gint button,
+ GdkEventButton *bevent,
gpointer user_data)
{
GtkFileSelection *fs = NULL;
@@ -1170,30 +1144,22 @@ gtk_file_selection_dir_button (GtkWidget *widget,
filename = gtk_clist_get_row_data (GTK_CLIST (fs->dir_list), row);
- if (filename)
- gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename);
-}
-
-static void
-gtk_file_selection_dir_button_double (GtkWidget *widget,
- gint row,
- gint column,
- gint button,
- gpointer user_data)
-{
- GtkFileSelection *fs = NULL;
- gchar *filename;
-
- g_return_if_fail (GTK_IS_CLIST (widget));
-
- fs = GTK_FILE_SELECTION (user_data);
- g_return_if_fail (fs != NULL);
- g_return_if_fail (GTK_IS_FILE_SELECTION (fs));
-
- filename = gtk_clist_get_row_data (GTK_CLIST (fs->dir_list), row);
+ if (bevent && filename) {
- if (filename)
- gtk_file_selection_populate (fs, filename, FALSE);
+ switch (bevent->type)
+ {
+ case GDK_BUTTON_PRESS:
+ gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename);
+ break;
+
+ case GDK_2BUTTON_PRESS:
+ gtk_file_selection_populate (fs, filename, FALSE);
+ break;
+
+ default:
+ break;
+ }
+ }
}
static void
diff --git a/gtk/testgtk.c b/gtk/testgtk.c
index d520e52af2..1ef4c2b790 100644
--- a/gtk/testgtk.c
+++ b/gtk/testgtk.c
@@ -1660,30 +1660,10 @@ hide_titles_clist (GtkWidget *widget, gpointer data)
}
void
-mouse_click_clist (GtkWidget *widget,
- gint row,
- gint column,
- gint button)
-{
- g_print ("GtkCList Mouse Click: row %d column %d button %d\n",
- row, column, button);
-}
-
-void
-mouse_double_click_clist (GtkWidget *widget,
- gint row,
- gint column,
- gint button)
-{
- g_print ("GtkCList Mouse Double Click: row %d column %d button %d\n",
- row, column, button);
-}
-
-void
select_clist (GtkWidget *widget,
gint row,
gint column,
- gint button)
+ GdkEventButton * bevent)
{
gint i;
guint8 spacing;
@@ -1692,7 +1672,7 @@ select_clist (GtkWidget *widget,
GdkBitmap *mask;
g_print ("GtkCList Selection: row %d column %d button %d\n",
- row, column, button);
+ row, column, bevent ? bevent->button : 0);
for (i = 0; i < TESTGTK_CLIST_COLUMNS; i++)
{
@@ -1731,55 +1711,6 @@ select_clist (GtkWidget *widget,
}
void
-unselect_clist (GtkWidget *widget,
- gint row,
- gint column,
- gint button)
-{
- gint i;
- guint8 spacing;
- gchar *text;
- GdkPixmap *pixmap;
- GdkBitmap *mask;
-
- g_print ("GtkCList UnSelection: row %d column %d button %d\n",
- row, column, button);
-
- for (i = 0; i < TESTGTK_CLIST_COLUMNS; i++)
- {
- switch (gtk_clist_get_cell_type (GTK_CLIST (widget), row, i))
- {
- case GTK_CELL_TEXT:
- g_print ("CELL %d GTK_CELL_TEXT\n", i);
- gtk_clist_get_text (GTK_CLIST (widget), row, i, &text);
- g_print ("TEXT: %s\n", text);
- break;
-
- case GTK_CELL_PIXMAP:
- g_print ("CELL %d GTK_CELL_PIXMAP\n", i);
- gtk_clist_get_pixmap (GTK_CLIST (widget), row, i, &pixmap, &mask);
- g_print ("PIXMAP: %d\n", (int) pixmap);
- g_print ("MASK: %d\n", (int) mask);
- break;
-
- case GTK_CELL_PIXTEXT:
- g_print ("CELL %d GTK_CELL_PIXTEXT\n", i);
- gtk_clist_get_pixtext (GTK_CLIST (widget), row, i, &text, &spacing, &pixmap, &mask);
- g_print ("TEXT: %s\n", text);
- g_print ("SPACING: %d\n", spacing);
- g_print ("PIXMAP: %d\n", (int) pixmap);
- g_print ("MASK: %d\n", (int) mask);
- break;
-
- default:
- break;
- }
- }
-
- g_print ("\n\n");
-}
-
-void
list_selection_clist (GtkWidget *widget, gpointer data)
{
}
@@ -1919,23 +1850,11 @@ create_clist ()
* the rest of the clist configuration
*/
gtk_clist_set_row_height (GTK_CLIST (clist), 20);
-
- gtk_signal_connect (GTK_OBJECT (clist),
- "mouse_click",
- (GtkSignalFunc) mouse_click_clist,
- NULL);
- gtk_signal_connect (GTK_OBJECT (clist),
- "mouse_double_click",
- (GtkSignalFunc) mouse_double_click_clist,
- NULL);
+
gtk_signal_connect (GTK_OBJECT (clist),
"select_row",
(GtkSignalFunc) select_clist,
NULL);
- gtk_signal_connect (GTK_OBJECT (clist),
- "unselect_row",
- (GtkSignalFunc) unselect_clist,
- NULL);
gtk_clist_set_column_width (GTK_CLIST (clist), 0, 100);