comparison gtk/dw.c @ 569:a126f4ec9570

Fixes for the color selection dialog on GTK 1.x.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Thu, 24 Jun 2004 19:23:51 +0000
parents f6de197ecbe9
children 828e6a66c5c5
comparison
equal deleted inserted replaced
568:07c100ee783d 569:a126f4ec9570
6626 } 6626 }
6627 6627
6628 /* Internal function to handle the color OK press */ 6628 /* Internal function to handle the color OK press */
6629 static gint _gtk_color_ok(GtkWidget *widget, DWDialog *dwwait) 6629 static gint _gtk_color_ok(GtkWidget *widget, DWDialog *dwwait)
6630 { 6630 {
6631 #if GTK_MAJOR_VERSION > 1
6631 GdkColor color; 6632 GdkColor color;
6633 #else
6634 gdouble colors[4];
6635 #endif
6632 unsigned long dw_color; 6636 unsigned long dw_color;
6633 GtkColorSelection *colorsel; 6637 GtkColorSelection *colorsel;
6634 6638
6635 if(!dwwait) 6639 if(!dwwait)
6636 return FALSE; 6640 return FALSE;
6637 6641
6638 colorsel = GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(dwwait->data)->colorsel); 6642 colorsel = GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(dwwait->data)->colorsel);
6639 gtk_color_selection_get_current_color(colorsel,&color); 6643 #if GTK_MAJOR_VERSION > 1
6644 gtk_color_selection_get_current_color(colorsel, &color);
6645 #else
6646 gtk_color_selection_get_color(colorsel, colors);
6647 #endif
6640 gtk_widget_destroy(GTK_WIDGET(dwwait->data)); 6648 gtk_widget_destroy(GTK_WIDGET(dwwait->data));
6641 _dw_color_active = 0; 6649 _dw_color_active = 0;
6650 #if GTK_MAJOR_VERSION > 1
6642 dw_color = DW_RGB( (color.red & 0xFF), (color.green & 0xFF), (color.blue & 0xFF)); 6651 dw_color = DW_RGB( (color.red & 0xFF), (color.green & 0xFF), (color.blue & 0xFF));
6652 #else
6653 dw_color = DW_RGB( (int)(colors[0] * 255), (int)(colors[1] * 255), (int)(colors[2] * 255));
6654 #endif
6643 dw_dialog_dismiss(dwwait, (void *)dw_color); 6655 dw_dialog_dismiss(dwwait, (void *)dw_color);
6644 return FALSE; 6656 return FALSE;
6645 } 6657 }
6646 6658
6647 /* Internal function to handle the color Cancel press */ 6659 /* Internal function to handle the color Cancel press */
6666 { 6678 {
6667 GtkWidget *colorw; 6679 GtkWidget *colorw;
6668 int _locked_by_me = FALSE; 6680 int _locked_by_me = FALSE;
6669 DWDialog *dwwait; 6681 DWDialog *dwwait;
6670 GtkColorSelection *colorsel; 6682 GtkColorSelection *colorsel;
6683 #if GTK_MAJOR_VERSION > 1
6671 GdkColor color = _internal_color(value); 6684 GdkColor color = _internal_color(value);
6685 #else
6686 gdouble colors[4];
6687 #endif
6672 unsigned long dw_color; 6688 unsigned long dw_color;
6673 6689
6674 DW_MUTEX_LOCK; 6690 DW_MUTEX_LOCK;
6675 6691
6676 /* The DW mutex should be sufficient for 6692 /* The DW mutex should be sufficient for
6690 6706
6691 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(colorw)->ok_button), "clicked", (GtkSignalFunc) _gtk_color_ok, dwwait); 6707 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(colorw)->ok_button), "clicked", (GtkSignalFunc) _gtk_color_ok, dwwait);
6692 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(colorw)->cancel_button), "clicked", (GtkSignalFunc) _gtk_color_cancel, dwwait); 6708 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(colorw)->cancel_button), "clicked", (GtkSignalFunc) _gtk_color_cancel, dwwait);
6693 6709
6694 colorsel = GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(colorw)->colorsel); 6710 colorsel = GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(colorw)->colorsel);
6711 #if GTK_MAJOR_VERSION > 1
6695 gtk_color_selection_set_previous_color(colorsel,&color); 6712 gtk_color_selection_set_previous_color(colorsel,&color);
6696 gtk_color_selection_set_current_color(colorsel,&color); 6713 gtk_color_selection_set_current_color(colorsel,&color);
6697 gtk_color_selection_set_has_palette(colorsel,TRUE); 6714 gtk_color_selection_set_has_palette(colorsel,TRUE);
6715 #else
6716 colors[0] = ((gdouble)DW_RED_VALUE(value) / (gdouble)255);
6717 colors[1] = ((gdouble)DW_GREEN_VALUE(value) / (gdouble)255);
6718 colors[2] = ((gdouble)DW_BLUE_VALUE(value) / (gdouble)255);
6719 gtk_color_selection_set_color(colorsel, colors);
6720 #endif
6698 6721
6699 gtk_widget_show(colorw); 6722 gtk_widget_show(colorw);
6700 6723
6701 dw_color = (unsigned long)dw_dialog_wait(dwwait); 6724 dw_color = (unsigned long)dw_dialog_wait(dwwait);
6702 if ((unsigned long)dw_color == -1) 6725 if ((unsigned long)dw_color == -1)