void nsColorPicker::Done(GtkWidget* color_chooser, gint response) { switch (response) { case GTK_RESPONSE_OK: case GTK_RESPONSE_ACCEPT: ReadValueFromColorSelection(WidgetGetColorSelection(color_chooser)); break; case GTK_RESPONSE_CANCEL: case GTK_RESPONSE_CLOSE: case GTK_RESPONSE_DELETE_EVENT: mColor = mInitialColor; break; default: NS_WARNING("Unexpected response"); break; } // A "response" signal won't be sent again but "destroy" will be. g_signal_handlers_disconnect_by_func(color_chooser, FuncToGpointer(OnDestroy), this); gtk_widget_destroy(color_chooser); if (mCallback) { mCallback->Done(mColor); mCallback = nullptr; } NS_RELEASE_THIS(); }
void nsColorPicker::Update(GtkColorSelection* colorselection) { ReadValueFromColorSelection(colorselection); if (mCallback) { mCallback->Update(mColor); } }
void nsColorPicker::Done(GtkWidget* color_chooser, gint response) { switch (response) { case GTK_RESPONSE_OK: case GTK_RESPONSE_ACCEPT: #if defined(ACTIVATE_GTK3_COLOR_PICKER) && GTK_CHECK_VERSION(3,4,0) GdkRGBA color; gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(color_chooser), &color); SetColor(&color); #else ReadValueFromColorSelection(WidgetGetColorSelection(color_chooser)); #endif break; case GTK_RESPONSE_CANCEL: case GTK_RESPONSE_CLOSE: case GTK_RESPONSE_DELETE_EVENT: mColor = mInitialColor; break; default: NS_WARNING("Unexpected response"); break; } // A "response" signal won't be sent again but "destroy" will be. g_signal_handlers_disconnect_by_func(color_chooser, FuncToGpointer(OnDestroy), this); gtk_widget_destroy(color_chooser); if (mCallback) { mCallback->Done(mColor); mCallback = nullptr; } NS_RELEASE_THIS(); }