mirror of
https://github.com/MidnightCommander/mc
synced 2024-12-23 04:46:55 +03:00
Wed Aug 19 19:45:16 EDT 1998 The Rasterman <raster@redhat.com>
* gdesktop.c - changed dnd setting routine for desktop icon to set events on child window... * gtrans.c - chnaged routines to make window with child rawing area and set shape on parent window
This commit is contained in:
parent
12b563f15e
commit
5240be11ae
@ -1,3 +1,9 @@
|
||||
Wed Aug 19 19:45:16 EDT 1998 The Rasterman <raster@redhat.com>
|
||||
* gdesktop.c - changed dnd setting routine for desktop icon to set
|
||||
events on child window...
|
||||
* gtrans.c - chnaged routines to make window with child rawing area
|
||||
and set shape on parent window
|
||||
|
||||
1998-08-14 Miguel de Icaza <miguel@nuclecu.unam.mx>
|
||||
|
||||
* gscreen.c (panel_make_local_copies_and_transfer): Fix.
|
||||
|
@ -912,12 +912,15 @@ desktop_icon_drag_end (GtkWidget *widget, GdkEvent *event, desktop_icon_t *di)
|
||||
static void
|
||||
desktop_icon_make_draggable (desktop_icon_t *di)
|
||||
{
|
||||
GtkObject *obj = GTK_OBJECT (di->widget);
|
||||
GtkObject *obj;
|
||||
GList *child;
|
||||
char *drag_types [] = { "icon/root", "url:ALL" };
|
||||
|
||||
/* To artificially start up drag and drop */
|
||||
child = gtk_container_children(GTK_CONTAINER(di->widget));
|
||||
obj = GTK_OBJECT (child->data);
|
||||
/* To artificially start up drag and drop */
|
||||
/* gtk_signal_connect (obj, "motion_notify_event", GTK_SIGNAL_FUNC (start_icon_drag), di); */
|
||||
gtk_widget_dnd_drag_set (di->widget, TRUE, drag_types, ELEMENTS (drag_types));
|
||||
gtk_widget_dnd_drag_set (GTK_WIDGET(child->data), TRUE, drag_types, ELEMENTS (drag_types));
|
||||
|
||||
gtk_signal_connect (obj, "drag_request_event", GTK_SIGNAL_FUNC (desktop_icon_drag_request), di);
|
||||
gtk_signal_connect (obj, "drag_begin_event", GTK_SIGNAL_FUNC (desktop_icon_drag_start), di);
|
||||
@ -1036,16 +1039,19 @@ char *drop_types [] = {
|
||||
static void
|
||||
post_setup_desktop_icon (desktop_icon_t *di, int show)
|
||||
{
|
||||
GList *child;
|
||||
desktop_icon_make_draggable (di);
|
||||
|
||||
/* Setup the widget to make it useful: */
|
||||
|
||||
/* 1. Drag and drop functionality */
|
||||
connect_drop_signals (di->widget, di);
|
||||
gtk_widget_dnd_drop_set (di->widget, TRUE, drop_types, ELEMENTS (drop_types), FALSE);
|
||||
|
||||
child = gtk_container_children(GTK_CONTAINER(di->widget));
|
||||
connect_drop_signals (GTK_WIDGET(child->data), di);
|
||||
gtk_widget_dnd_drop_set (GTK_WIDGET(child->data), TRUE, drop_types, ELEMENTS (drop_types), FALSE);
|
||||
|
||||
/* 2. Double clicking executes the command */
|
||||
gtk_signal_connect (GTK_OBJECT (di->widget), "button_press_event", GTK_SIGNAL_FUNC (dentry_button_click), di);
|
||||
gtk_signal_connect (GTK_OBJECT (child->data), "button_press_event", GTK_SIGNAL_FUNC (dentry_button_click), di);
|
||||
|
||||
if (show)
|
||||
gtk_widget_show (di->widget);
|
||||
|
@ -159,7 +159,7 @@ set_window_text (GtkWidget *window, GdkImlibImage *im, char *text)
|
||||
|
||||
gtk_widget_set_usize (window, width, height);
|
||||
gdk_window_set_back_pixmap (window->window, pixmap, FALSE);
|
||||
gdk_window_shape_combine_mask (window->window, mask, 0, 0);
|
||||
gdk_window_shape_combine_mask (window->parent->window, mask, 0, 0);
|
||||
|
||||
gdk_gc_destroy (p_gc);
|
||||
gdk_gc_destroy (m_gc);
|
||||
@ -179,7 +179,7 @@ lower_icon_window(GtkWidget *widget, GdkEventExpose *event)
|
||||
GtkWidget *
|
||||
create_transparent_text_window (char *file, char *text, int extra_events)
|
||||
{
|
||||
GtkWidget *window;
|
||||
GtkWidget *window, *win;
|
||||
GdkImlibImage *im;
|
||||
GdkCursor *cursor;
|
||||
|
||||
@ -190,10 +190,17 @@ create_transparent_text_window (char *file, char *text, int extra_events)
|
||||
if (!im)
|
||||
return NULL;
|
||||
|
||||
win = gtk_window_new(GTK_WINDOW_POPUP);
|
||||
gtk_widget_set_events (win, gtk_widget_get_events (win) | extra_events);
|
||||
|
||||
gtk_widget_push_visual (gdk_imlib_get_visual ());
|
||||
gtk_widget_push_colormap (gdk_imlib_get_colormap ());
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_POPUP);
|
||||
window = gtk_drawing_area_new ();
|
||||
|
||||
gtk_container_add(GTK_CONTAINER(win), window);
|
||||
gtk_widget_show(window);
|
||||
|
||||
gtk_widget_set_events (window, gtk_widget_get_events (window) | extra_events);
|
||||
|
||||
gtk_widget_pop_colormap ();
|
||||
@ -219,14 +226,14 @@ create_transparent_text_window (char *file, char *text, int extra_events)
|
||||
*/
|
||||
gtk_signal_connect(window, "expose_event", GTK_SIGNAL_FUNC(lower_icon_window), NULL);
|
||||
#endif
|
||||
return window;
|
||||
return win;
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
make_transparent_window (char *file)
|
||||
{
|
||||
GdkImlibImage *im;
|
||||
GtkWidget *window;
|
||||
GtkWidget *window, *win;
|
||||
XSetWindowAttributes xwa;
|
||||
|
||||
if (!g_file_exists (file))
|
||||
@ -236,18 +243,24 @@ make_transparent_window (char *file)
|
||||
if (!im)
|
||||
return NULL;
|
||||
|
||||
win = gtk_window_new(GTK_WINDOW_POPUP);
|
||||
|
||||
gtk_widget_push_visual (gdk_imlib_get_visual ());
|
||||
gtk_widget_push_colormap (gdk_imlib_get_colormap ());
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_POPUP);
|
||||
window = gtk_drawing_area_new ();
|
||||
|
||||
gtk_container_add(GTK_CONTAINER(win), window);
|
||||
gtk_widget_show(window);
|
||||
|
||||
gtk_widget_pop_colormap ();
|
||||
gtk_widget_pop_visual ();
|
||||
|
||||
gtk_widget_realize (window);
|
||||
|
||||
xwa.save_under = True;
|
||||
XChangeWindowAttributes (GDK_WINDOW_XDISPLAY (window->window),
|
||||
GDK_WINDOW_XWINDOW (window->window),
|
||||
XChangeWindowAttributes (GDK_WINDOW_XDISPLAY (win->window),
|
||||
GDK_WINDOW_XWINDOW (win->window),
|
||||
CWSaveUnder, &xwa);
|
||||
|
||||
gtk_widget_set_usize (window, im->rgb_width, im->rgb_height);
|
||||
@ -258,8 +271,8 @@ make_transparent_window (char *file)
|
||||
*/
|
||||
gdk_imlib_render (im, im->rgb_width, im->rgb_height);
|
||||
gdk_window_set_back_pixmap (window->window, gdk_imlib_move_image (im), FALSE);
|
||||
gdk_window_shape_combine_mask (window->window, gdk_imlib_move_mask (im), 0, 0);
|
||||
gdk_window_shape_combine_mask (win->window, gdk_imlib_move_mask (im), 0, 0);
|
||||
|
||||
return window;
|
||||
return win;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user