// Gdk::Color -> 16進数表記の文字列 std::string MISC::color_to_str( const Gdk::Color& color ) { // R,G,Bを取得 int l_rgb[3]; l_rgb[0] = color.get_red(); l_rgb[1] = color.get_green(); l_rgb[2] = color.get_blue(); return color_to_str( l_rgb ); }
void Widget_ColorEdit::on_color_changed() { //Spike! Gtk::ColorSelection emits this signal when I use //set_current_color(...). It calls recursion. Used a flag to fix it. if (!colorHVSChanged) { Gdk::Color newColor = hvsColorWidget->get_current_color(); float r = hvs_gamma_in.r_F32_to_F32((float)newColor.get_red() / USHRT_MAX); float g = hvs_gamma_in.g_F32_to_F32((float)newColor.get_green() / USHRT_MAX); float b = hvs_gamma_in.b_F32_to_F32((float)newColor.get_blue() / USHRT_MAX); const synfig::Color synfigColor(r, g, b); set_value(synfigColor); colorHVSChanged = true; //I reset the flag in setHVSColor(..) on_value_changed(); } }
/* ================================== AdvancedOptionsWindow::on_backgroundcolor_changed Sets the background colour for profile and the overview. ================================== */ void AdvancedOptionsWindow::on_backgroundcolor_changed() { Gdk::Color c = backgroundcolorbutton->get_color(); float red = (float) c.get_red() / 65535.0; float green = (float) c.get_green() / 65535.0; float blue = (float) c.get_blue() / 65535.0; float alpha = (float) backgroundcolorbutton->get_alpha() / 65535.0; tdo->set_background_colour(red, green, blue, alpha); prof->set_background_colour(red, green, blue, alpha); if(tdo->get_realized()) { tdo->update_background_colour(); tdo->drawviewable(1); } if(prof->get_realized()) { prof->update_background_colour(); prof->drawviewable(1); } }
void RLight::guiUpdate() { try { _intensity = boost::lexical_cast<float>(_intensityEntry->get_text()); } catch (...) {} try { _attenuation = boost::lexical_cast<float>(_attenuationEntry->get_text()); } catch (...) {} try { _specularExponent = boost::lexical_cast<float>(_specularExponentEntry->get_text()); } catch (...) {} try { _specularFactor = boost::lexical_cast<float>(_specularFactorEntry->get_text()); } catch (...) {} Gdk::Color color = _lightColor->get_color(); _color[0] = GLfloat(color.get_red()) / G_MAXUSHORT; _color[1] = GLfloat(color.get_green()) / G_MAXUSHORT; _color[2] = GLfloat(color.get_blue()) / G_MAXUSHORT; try { magnet::math::Vector vec; vec[0] = boost::lexical_cast<float>(_positionXEntry->get_text()); vec[1] = boost::lexical_cast<float>(_positionYEntry->get_text()); vec[2] = boost::lexical_cast<float>(_positionZEntry->get_text()); setEyeLocationObjSpace(vec); } catch (...) {} }
void PrintNotesNoteAddin::get_paragraph_attributes(const Glib::RefPtr<Pango::Layout> & layout, double dpiX, int & indentation, Gtk::TextIter & position, const Gtk::TextIter & limit, std::list<Pango::Attribute> & attributes) { attributes.clear(); indentation = 0; Glib::SListHandle<Glib::RefPtr<Gtk::TextTag> > tags = position.get_tags(); position.forward_to_tag_toggle(Glib::RefPtr<Gtk::TextTag>(NULL)); if (position.compare (limit) > 0) { position = limit; } Glib::RefPtr<Gdk::Screen> screen = get_window()->get_screen(); double screen_dpiX = screen->get_width_mm() * 254 / screen->get_width(); for(Glib::SListHandle<Glib::RefPtr<Gtk::TextTag> >::const_iterator iter = tags.begin(); iter != tags.end(); ++iter) { Glib::RefPtr<Gtk::TextTag> tag(*iter); if (tag->property_paragraph_background_set()) { Gdk::Color color = tag->property_paragraph_background_gdk(); attributes.push_back(Pango::Attribute::create_attr_background( color.get_red(), color.get_green(), color.get_blue())); } if (tag->property_foreground_set()) { Gdk::Color color = tag->property_foreground_gdk();; attributes.push_back(Pango::Attribute::create_attr_foreground( color.get_red(), color.get_green(), color.get_blue())); } if (tag->property_indent_set()) { layout->set_indent(tag->property_indent()); } if (tag->property_left_margin_set()) { indentation = (int)(tag->property_left_margin() / screen_dpiX * dpiX); } if (tag->property_right_margin_set()) { indentation = (int)(tag->property_right_margin() / screen_dpiX * dpiX); } // if (tag->property_font_desc()) { attributes.push_back( Pango::Attribute::create_attr_font_desc (tag->property_font_desc())); // } if (tag->property_family_set()) { attributes.push_back( Pango::Attribute::create_attr_family (tag->property_family())); } if (tag->property_size_set()) { attributes.push_back(Pango::Attribute::create_attr_size ( tag->property_size())); } if (tag->property_style_set()) { attributes.push_back(Pango::Attribute::create_attr_style ( tag->property_style())); } if (tag->property_underline_set() && tag->property_underline() != Pango::UNDERLINE_ERROR) { attributes.push_back( Pango::Attribute::create_attr_underline ( tag->property_underline())); } if (tag->property_weight_set()) { attributes.push_back( Pango::Attribute::create_attr_weight( Pango::Weight(tag->property_weight().get_value()))); } if (tag->property_strikethrough_set()) { attributes.push_back( Pango::Attribute::create_attr_strikethrough ( tag->property_strikethrough())); } if (tag->property_rise_set()) { attributes.push_back(Pango::Attribute::create_attr_rise ( tag->property_rise())); } if (tag->property_scale_set()) { attributes.push_back(Pango::Attribute::create_attr_scale ( tag->property_scale())); } if (tag->property_stretch_set()) { attributes.push_back(Pango::Attribute::create_attr_stretch ( tag->property_stretch())); } } }
/** Establece el color de la celula sin determinar. @param sic, Gdk::Color que contiene el valor del color de las celulas sin identificarD. */ void DibujadoCelula::setSinIdCel(Gdk::Color sic) { sinIdCelR = (sic.get_red()/divisor); sinIdCelG = (sic.get_green()/divisor); sinIdCelB = (sic.get_blue()/divisor); }
/** Establece el color de la celula seleccionada. @param sc, Gdk::Color que contiene el valor del color de la seleccion. */ void DibujadoCelula::setSeleCel(Gdk::Color sc) { seleCelR = (sc.get_red()/divisor); seleCelG = (sc.get_green()/divisor); seleCelB = (sc.get_blue()/divisor); }
/** Establece el color de edicion. @param ec, Gdk::Color que contiene el valor del color de la edicion. */ void DibujadoCelula::setEdiCel(Gdk::Color ec) { ediCelR = (ec.get_red()/divisor); ediCelG = (ec.get_green()/divisor); ediCelB = (ec.get_blue()/divisor); }
/* * Set window properties that are not settable in builder */ settingsWindow->set_keep_above(true); settingsWindow->signal_show().connect(sigc::mem_fun(this, &ManglerSettings::settingsWindow_show_cb)); settingsWindow->signal_hide().connect(sigc::mem_fun(this, &ManglerSettings::settingsWindow_hide_cb)); builder->get_widget("settingsCancelButton", button); button->signal_clicked().connect(sigc::mem_fun(this, &ManglerSettings::settingsCancelButton_clicked_cb)); builder->get_widget("settingsApplyButton", button); button->signal_clicked().connect(sigc::mem_fun(this, &ManglerSettings::settingsApplyButton_clicked_cb)); builder->get_widget("settingsOkButton", button); button->signal_clicked().connect(sigc::mem_fun(this, &ManglerSettings::settingsOkButton_clicked_cb)); builder->get_widget("settingsEnablePTTKeyCheckButton", checkbutton); checkbutton->signal_toggled().connect(sigc::mem_fun(this, &ManglerSettings::settingsEnablePTTKeyCheckButton_toggled_cb)); builder->get_widget("settingsPTTKeyButton", button); button->signal_clicked().connect(sigc::mem_fun(this, &ManglerSettings::settingsPTTKeyButton_clicked_cb)); builder->get_widget("settingsEnablePTTMouseCheckButton", checkbutton); checkbutton->signal_toggled().connect(sigc::mem_fun(this, &ManglerSettings::settingsEnablePTTMouseCheckButton_toggled_cb)); builder->get_widget("settingsPTTMouseButton", button); button->signal_clicked().connect(sigc::mem_fun(this, &ManglerSettings::settingsPTTMouseButton_clicked_cb)); builder->get_widget("settingsEnableAudioIntegrationCheckButton", checkbutton); checkbutton->signal_toggled().connect(sigc::mem_fun(this, &ManglerSettings::settingsEnableAudioIntegrationCheckButton_toggled_cb)); builder->get_widget("settingsAudioIntegrationComboBox", audioPlayerComboBox); audioPlayerTreeModel = Gtk::ListStore::create(audioPlayerColumns); audioPlayerComboBox->set_model(audioPlayerTreeModel); // create a "none" row Gtk::TreeModel::Row audioPlayerNoneRow = *(audioPlayerTreeModel->append()); audioPlayerNoneRow[audioPlayerColumns.id] = MusicClient_None; audioPlayerNoneRow[audioPlayerColumns.name] = "None"; #ifdef HAVE_LIBMPDCLIENT // add MPD row Gtk::TreeModel::Row audioPlayerMPDRow = *(audioPlayerTreeModel->append()); audioPlayerMPDRow[audioPlayerColumns.id] = MusicClient_MPD; audioPlayerMPDRow[audioPlayerColumns.name] = "MPD"; #endif #ifdef HAVE_DBUS // add DBUS client rows // rhythmbox Gtk::TreeModel::Row audioPlayerRBRow = *(audioPlayerTreeModel->append()); audioPlayerRBRow[audioPlayerColumns.id] = MusicClient_Rhythmbox; audioPlayerRBRow[audioPlayerColumns.name] = "Rhythmbox"; // amarok Gtk::TreeModel::Row audioPlayerAmarokRow = *(audioPlayerTreeModel->append()); audioPlayerAmarokRow[audioPlayerColumns.id] = MusicClient_Amarok; audioPlayerAmarokRow[audioPlayerColumns.name] = "Amarok"; #endif audioPlayerComboBox->pack_start(audioPlayerColumns.name); audioPlayerComboBox->set_active(audioPlayerNoneRow); builder->get_widget("settingsEnableVoiceActivationCheckButton", checkbutton); checkbutton->signal_toggled().connect(sigc::mem_fun(this, &ManglerSettings::settingsEnableVoiceActivationCheckButton_toggled_cb)); #ifdef HAVE_XOSD builder->get_widget("settingsOSD", vbox); vbox->set_sensitive(true); builder->get_widget("settingsEnableOnScreenDisplayCheckButton", checkbutton); checkbutton->signal_toggled().connect(sigc::mem_fun(this, &ManglerSettings::settingsEnableOnScreenDisplayCheckButton_toggled_cb)); builder->get_widget("settingsOSDverticalPos", osdPosition); osdPositionModel = Gtk::ListStore::create(osdPositionColumns); osdPosition->set_model(osdPositionModel); osdPosition->pack_start(osdPositionColumns.name); Gtk::TreeModel::Row posrow; posrow = *osdPositionModel->append(); posrow[osdPositionColumns.id] = XOSD_top; posrow[osdPositionColumns.name] = "Top"; posrow = *osdPositionModel->append(); posrow[osdPositionColumns.id] = XOSD_middle; posrow[osdPositionColumns.name] = "Middle"; posrow = *osdPositionModel->append(); posrow[osdPositionColumns.id] = XOSD_bottom; posrow[osdPositionColumns.name] = "Bottom"; builder->get_widget("settingsOSDhorizontalPos", osdAlignment); osdAlignmentModel = Gtk::ListStore::create(osdAlignmentColumns); osdAlignment->set_model(osdAlignmentModel); osdAlignment->pack_start(osdAlignmentColumns.name); Gtk::TreeModel::Row alnrow; alnrow = *osdAlignmentModel->append(); alnrow[osdAlignmentColumns.id] = XOSD_center; alnrow[osdAlignmentColumns.name] = "Center"; alnrow = *osdAlignmentModel->append(); alnrow[osdAlignmentColumns.id] = XOSD_left; alnrow[osdAlignmentColumns.name] = "Left"; alnrow = *osdAlignmentModel->append(); alnrow[osdAlignmentColumns.id] = XOSD_right; alnrow[osdAlignmentColumns.name] = "Right"; builder->get_widget("settingsOSDfontsize", osdFontSize); builder->get_widget("settingsOSDcolor", osdColor); #endif builder->get_widget("audioSubsystemComboBox", audioSubsystemComboBox); audioSubsystemTreeModel = Gtk::ListStore::create(audioSubsystemColumns); audioSubsystemComboBox->set_model(audioSubsystemTreeModel); audioSubsystemComboBox->pack_start(audioSubsystemColumns.name); audioSubsystemComboBox->signal_changed().connect(sigc::mem_fun(this, &ManglerSettings::audioSubsystemComboBox_changed_cb)); builder->get_widget("inputDeviceComboBox", inputDeviceComboBox); inputDeviceTreeModel = Gtk::ListStore::create(inputColumns); inputDeviceComboBox->set_model(inputDeviceTreeModel); inputDeviceComboBox->pack_start(inputColumns.description); inputDeviceComboBox->signal_changed().connect(sigc::mem_fun(this, &ManglerSettings::inputDeviceComboBox_changed_cb)); builder->get_widget("inputDeviceCustomName", inputDeviceCustomName); builder->get_widget("outputDeviceComboBox", outputDeviceComboBox); outputDeviceTreeModel = Gtk::ListStore::create(outputColumns); outputDeviceComboBox->set_model(outputDeviceTreeModel); outputDeviceComboBox->pack_start(outputColumns.description); outputDeviceComboBox->signal_changed().connect(sigc::mem_fun(this, &ManglerSettings::outputDeviceComboBox_changed_cb)); builder->get_widget("outputDeviceCustomName", outputDeviceCustomName); builder->get_widget("notificationDeviceComboBox", notificationDeviceComboBox); notificationDeviceTreeModel = Gtk::ListStore::create(notificationColumns); notificationDeviceComboBox->set_model(notificationDeviceTreeModel); notificationDeviceComboBox->pack_start(notificationColumns.description); notificationDeviceComboBox->signal_changed().connect(sigc::mem_fun(this, &ManglerSettings::notificationDeviceComboBox_changed_cb)); builder->get_widget("notificationDeviceCustomName", notificationDeviceCustomName); mouseInputDevices = getInputDeviceList(); builder->get_widget("settingsMouseDeviceComboBox", mouseDeviceComboBox); mouseDeviceTreeModel = Gtk::ListStore::create(mouseColumns); mouseDeviceComboBox->set_model(mouseDeviceTreeModel); mouseDeviceComboBox->pack_start(mouseColumns.name); // Audio Subsystem audioSubsystemTreeModel->clear(); Gtk::TreeModel::Row audioSubsystemRow; #ifdef HAVE_PULSE audioSubsystemRow = *(audioSubsystemTreeModel->append()); audioSubsystemRow[audioSubsystemColumns.id] = "pulse"; audioSubsystemRow[audioSubsystemColumns.name] = "PulseAudio"; #endif #ifdef HAVE_ALSA audioSubsystemRow = *(audioSubsystemTreeModel->append()); audioSubsystemRow[audioSubsystemColumns.id] = "alsa"; audioSubsystemRow[audioSubsystemColumns.name] = "ALSA"; #endif #ifdef HAVE_OSS audioSubsystemRow = *(audioSubsystemTreeModel->append()); audioSubsystemRow[audioSubsystemColumns.id] = "oss"; audioSubsystemRow[audioSubsystemColumns.name] = "OSS"; #endif // Master Volume volumeAdjustment = new Gtk::Adjustment(79, 0, 158, 1, 10, 10); volumehscale = new Gtk::HScale(*volumeAdjustment); volumehscale->add_mark(148, Gtk::POS_LEFT, "200%"); volumehscale->add_mark(79, Gtk::POS_LEFT, "100%"); volumehscale->add_mark(0, Gtk::POS_LEFT, "0%"); volumehscale->set_inverted(false); volumehscale->set_draw_value(false); builder->get_widget("masterVolumeVbox", vbox); vbox->pack_start(*volumehscale); volumehscale->show(); // Input Gain gainAdjustment = new Gtk::Adjustment(79, 0, 158, 1, 10, 10); gainhscale = new Gtk::HScale(*gainAdjustment); gainhscale->add_mark(148, Gtk::POS_LEFT, "200%"); gainhscale->add_mark(79, Gtk::POS_LEFT, "100%"); gainhscale->add_mark(0, Gtk::POS_LEFT, "0%"); gainhscale->set_inverted(false); gainhscale->set_draw_value(false); builder->get_widget("inputGainVbox", vbox); vbox->pack_start(*gainhscale); gainhscale->show(); }/*}}}*/ void ManglerSettings::applySettings(void) {/*{{{*/ Gtk::TreeModel::iterator iter; GdkWindow *rootwin = gdk_get_default_root_window(); // Key Push to Talk builder->get_widget("settingsEnablePTTKeyCheckButton", checkbutton); Mangler::config["PushToTalkKeyEnabled"] = checkbutton->get_active(); builder->get_widget("settingsPTTKeyValueLabel", label); if (label->get_label() != PTT_KEY_GET && label->get_label() != PTT_KEY_SET) { Mangler::config["PushToTalkKeyValue"] = label->get_text(); } else { Mangler::config["PushToTalkKeyValue"] = ""; } //Mangler::config.parsePushToTalkValue(config.PushToTalkKeyValue); // Mouse Push to Talk builder->get_widget("settingsMouseDeviceComboBox", combobox); iter = combobox->get_active(); if (iter) { Gtk::TreeModel::Row row = *iter; Mangler::config["MouseDeviceName"] = Glib::ustring( row[mouseColumns.name] ); } builder->get_widget("settingsEnablePTTMouseCheckButton", checkbutton); Mangler::config["PushToTalkMouseEnabled"] = checkbutton->get_active(); builder->get_widget("settingsPTTMouseValueLabel", label); if (label->get_label() != PTT_MOUSE_GET && label->get_label() != PTT_MOUSE_SET) { Glib::ustring PushToTalkMouseValue = label->get_text(); if (PushToTalkMouseValue.length() > 6) { Mangler::config["PushToTalkMouseValue"] = PushToTalkMouseValue.substr(6); } else { Mangler::config["PushToTalkMouseValue"] = PushToTalkMouseValue; } } else { Mangler::config["PushToTalkMouseValue"] = ""; } XUngrabButton(GDK_WINDOW_XDISPLAY(rootwin), AnyButton, AnyModifier, GDK_ROOT_WINDOW()); XAllowEvents (GDK_WINDOW_XDISPLAY(rootwin), AsyncBoth, CurrentTime); /* if (checkbutton->get_active()) { XGrabButton(GDK_WINDOW_XDISPLAY(rootwin), config.PushToTalkMouseValueInt, AnyModifier, GDK_ROOT_WINDOW(), False, ButtonPressMask|ButtonReleaseMask, GrabModeAsync, GrabModeAsync, None, None); } */ // Audio Player Integration builder->get_widget("settingsEnableAudioIntegrationCheckButton", checkbutton); Mangler::config["AudioIntegrationEnabled"] = checkbutton->get_active(); iter = audioPlayerComboBox->get_active(); if (iter) { Gtk::TreeModel::Row row = *iter; uint8_t id = row[audioPlayerColumns.id]; Mangler::config["AudioIntegrationPlayer"] = id; if (Mangler::config["AudioIntegrationEnabled"].toBool()) { mangler->integration->setClient((MusicClient)id); } else { mangler->integration->setClient(MusicClient_None); } } mangler->integration->update(true); // Voice Activation builder->get_widget("settingsEnableVoiceActivationCheckButton", checkbutton); Mangler::config["VoiceActivationEnabled"] = checkbutton->get_active(); builder->get_widget("settingsVoiceActivationSilenceDurationSpinButton", spinbutton); Mangler::config["VoiceActivationSilenceDuration"] = spinbutton->get_value() * 1000.0; builder->get_widget("settingsVoiceActivationSensitivitySpinButton", spinbutton); Mangler::config["VoiceActivationSensitivity"] = spinbutton->get_value_as_int(); #ifdef HAVE_XOSD // On-Screen Display builder->get_widget("settingsEnableOnScreenDisplayCheckButton", checkbutton); Mangler::config["OnScreenDisplayEnabled"] = checkbutton->get_active(); if (checkbutton->get_active()) { Gtk::TreeModel::iterator pos_iter = osdPosition->get_active(); if (pos_iter) { int vert_pos_int = (*pos_iter)[osdPositionColumns.id]; Mangler::config["OnScreenDisplayVerticalPosition"] = vert_pos_int; } Gtk::TreeModel::iterator aln_iter = osdAlignment->get_active(); if (aln_iter) { int horz_aln_int = (*aln_iter)[osdAlignmentColumns.id]; Mangler::config["OnScreenDisplayHorizontalAlignment"] = horz_aln_int; } Mangler::config["OnScreenDisplayFontSize"] = osdFontSize->get_value(); Gdk::Color color = osdColor->get_color(); char colorstr[16]; snprintf(colorstr, 15, "#%02x%02x%02x", color.get_red() / 256, color.get_green() / 256, color.get_blue() / 256); Mangler::config["OnScreenDisplayColor"] = colorstr; mangler->osd->destroyOsd(); } #endif // Audio Devices iter = inputDeviceComboBox->get_active(); if (iter) { Gtk::TreeModel::Row row = *iter; Mangler::config["InputDeviceName"] = Glib::ustring( row[inputColumns.name] ); } Mangler::config["InputDeviceCustomName"] = inputDeviceCustomName->get_text(); iter = outputDeviceComboBox->get_active(); if (iter) { Gtk::TreeModel::Row row = *iter; Mangler::config["OutputDeviceName"] = Glib::ustring( row[outputColumns.name] ); } Mangler::config["OutputDeviceCustomName"] = outputDeviceCustomName->get_text(); iter = notificationDeviceComboBox->get_active(); if (iter) { Gtk::TreeModel::Row row = *iter; Mangler::config["NotificationDeviceName"] = Glib::ustring( row[notificationColumns.name] ); } Mangler::config["NotificationDeviceCustomName"] = notificationDeviceCustomName->get_text(); iter = audioSubsystemComboBox->get_active(); if (iter) { Gtk::TreeModel::Row row = *iter; Mangler::config["AudioSubsystem"] = Glib::ustring( row[audioSubsystemColumns.id] ); } // Master Volume Mangler::config["MasterVolumeLevel"] = volumeAdjustment->get_value(); v3_set_volume_master(Mangler::config["MasterVolumeLevel"].toInt()); mangler->setTooltip(); // Input Gain Mangler::config["InputGainLevel"] = gainAdjustment->get_value(); v3_set_volume_xmit(Mangler::config["InputGainLevel"].toInt()); // Notification Sounds builder->get_widget("notificationLoginLogoutCheckButton", checkbutton); Mangler::config["NotificationLoginLogout"] = checkbutton->get_active(); builder->get_widget("notificationChannelEnterLeaveCheckButton", checkbutton); Mangler::config["NotificationChannelEnterLeave"] = checkbutton->get_active(); builder->get_widget("notificationTalkStartEndCheckButton", checkbutton); Mangler::config["NotificationTransmitStartStop"] = checkbutton->get_active(); builder->get_widget("notificationTTSCheckButton", checkbutton); Mangler::config["NotificationTextToSpeech"] = checkbutton->get_active(); // Debug Level uint32_t debuglevel = 0; builder->get_widget("debugStatus", checkbutton); debuglevel |= checkbutton->get_active() ? V3_DEBUG_STATUS : 0; builder->get_widget("debugError", checkbutton); debuglevel |= checkbutton->get_active() ? V3_DEBUG_ERROR : 0; builder->get_widget("debugStack", checkbutton); debuglevel |= checkbutton->get_active() ? V3_DEBUG_STACK : 0; builder->get_widget("debugInternalNet", checkbutton); debuglevel |= checkbutton->get_active() ? V3_DEBUG_INTERNAL : 0; builder->get_widget("debugPacketDump", checkbutton); debuglevel |= checkbutton->get_active() ? V3_DEBUG_PACKET : 0; builder->get_widget("debugPacketParse", checkbutton); debuglevel |= checkbutton->get_active() ? V3_DEBUG_PACKET_PARSE : 0; builder->get_widget("debugEventQueue", checkbutton); debuglevel |= checkbutton->get_active() ? V3_DEBUG_EVENT : 0; builder->get_widget("debugSocket", checkbutton); debuglevel |= checkbutton->get_active() ? V3_DEBUG_SOCKET : 0; builder->get_widget("debugNotice", checkbutton); debuglevel |= checkbutton->get_active() ? V3_DEBUG_NOTICE : 0; builder->get_widget("debugInfo", checkbutton); debuglevel |= checkbutton->get_active() ? V3_DEBUG_INFO : 0; builder->get_widget("debugMutex", checkbutton); debuglevel |= checkbutton->get_active() ? V3_DEBUG_MUTEX : 0; builder->get_widget("debugMemory", checkbutton); debuglevel |= checkbutton->get_active() ? V3_DEBUG_MEMORY : 0; builder->get_widget("debugEncryptedPacket", checkbutton); debuglevel |= checkbutton->get_active() ? V3_DEBUG_PACKET_ENCRYPTED : 0; Mangler::config["lv3_debuglevel"] = debuglevel; v3_debuglevel(debuglevel); Mangler::config.config.save(); }/*}}}*/