void SPIDevice::SetDefaults() { // Set device options set<string> valid_backends; valid_backends.insert(HARDWARE_BACKEND); valid_backends.insert(SOFTWARE_BACKEND); m_preferences->SetDefaultValue(SPIBackendKey(), SetValidator(valid_backends), SOFTWARE_BACKEND); m_preferences->SetDefaultValue(SPISpeedKey(), IntValidator(0, 32000000), "100000"); m_preferences->SetDefaultValue(SPICEKey(), BoolValidator(), "false"); m_preferences->SetDefaultValue(PortCountKey(), IntValidator(1, 8), "1"); m_preferences->SetDefaultValue(SyncPortKey(), IntValidator(-2, 8), "0"); }
/* * Set default preferences. */ bool ArtNetPlugin::SetDefaultPreferences() { bool save = false; if (!m_preferences) return false; save |= m_preferences->SetDefaultValue(ArtNetDevice::K_IP_KEY, StringValidator(true), ""); save |= m_preferences->SetDefaultValue(ArtNetDevice::K_SHORT_NAME_KEY, StringValidator(), ARTNET_SHORT_NAME); save |= m_preferences->SetDefaultValue(ArtNetDevice::K_LONG_NAME_KEY, StringValidator(), ARTNET_LONG_NAME); save |= m_preferences->SetDefaultValue(ArtNetDevice::K_NET_KEY, IntValidator(0, 127), ARTNET_NET); save |= m_preferences->SetDefaultValue(ArtNetDevice::K_SUBNET_KEY, IntValidator(0, 15), ARTNET_SUBNET); save |= m_preferences->SetDefaultValue(ArtNetDevice::K_OUTPUT_PORT_KEY, IntValidator(0, 16), "4"); save |= m_preferences->SetDefaultValue(ArtNetDevice::K_ALWAYS_BROADCAST_KEY, BoolValidator(), BoolValidator::DISABLED); save |= m_preferences->SetDefaultValue(ArtNetDevice::K_LIMITED_BROADCAST_KEY, BoolValidator(), BoolValidator::DISABLED); save |= m_preferences->SetDefaultValue(ArtNetDevice::K_LOOPBACK_KEY, BoolValidator(), BoolValidator::DISABLED); if (save) m_preferences->Save(); // check if this save correctly // we don't want to use it if null if (m_preferences->GetValue(ArtNetDevice::K_SHORT_NAME_KEY).empty() || m_preferences->GetValue(ArtNetDevice::K_LONG_NAME_KEY).empty() || m_preferences->GetValue(ArtNetDevice::K_SUBNET_KEY).empty() || m_preferences->GetValue(ArtNetDevice::K_OUTPUT_PORT_KEY).empty() || m_preferences->GetValue(ArtNetDevice::K_NET_KEY).empty()) return false; return true; }
DialogProperties::DialogProperties(agi::Context *c) : wxDialog(c->parent, -1, _("Script Properties")) , c(c) { SetIcon(GETICON(properties_toolbutton_16)); // Script details crap wxSizer *TopSizer = new wxStaticBoxSizer(wxHORIZONTAL,this,_("Script")); auto TopSizerGrid = new wxFlexGridSizer(0,2,5,5); AddProperty(TopSizerGrid, _("Title:"), "Title"); AddProperty(TopSizerGrid, _("Original script:"), "Original Script"); AddProperty(TopSizerGrid, _("Translation:"), "Original Translation"); AddProperty(TopSizerGrid, _("Editing:"), "Original Editing"); AddProperty(TopSizerGrid, _("Timing:"), "Original Timing"); AddProperty(TopSizerGrid, _("Synch point:"), "Synch Point"); AddProperty(TopSizerGrid, _("Updated by:"), "Script Updated By"); AddProperty(TopSizerGrid, _("Update details:"), "Update Details"); TopSizerGrid->AddGrowableCol(1,1); TopSizer->Add(TopSizerGrid,1,wxALL | wxEXPAND,0); // Resolution box wxSizer *ResSizer = new wxStaticBoxSizer(wxHORIZONTAL,this,_("Resolution")); ResX = new wxTextCtrl(this,-1,"",wxDefaultPosition,wxSize(50,20),0,IntValidator(c->ass->GetScriptInfoAsInt("PlayResX"))); ResY = new wxTextCtrl(this,-1,"",wxDefaultPosition,wxSize(50,20),0,IntValidator(c->ass->GetScriptInfoAsInt("PlayResY"))); wxStaticText *ResText = new wxStaticText(this,-1,"x"); wxButton *FromVideo = new wxButton(this,-1,_("From &video")); if (!c->videoController->IsLoaded()) FromVideo->Enable(false); else FromVideo->Bind(wxEVT_BUTTON, &DialogProperties::OnSetFromVideo, this); ResSizer->Add(ResX,1,wxRIGHT | wxALIGN_CENTER_VERTICAL,5); ResSizer->Add(ResText,0,wxALIGN_CENTER | wxRIGHT,5); ResSizer->Add(ResY,1,wxRIGHT | wxALIGN_CENTER_VERTICAL,5); ResSizer->Add(FromVideo,1,0,0); // Options wxSizer *optionsBox = new wxStaticBoxSizer(wxHORIZONTAL,this,_("Options")); auto optionsGrid = new wxFlexGridSizer(3,2,5,5); wxString wrap_opts[] = { _("0: Smart wrapping, top line is wider"), _("1: End-of-line word wrapping, only \\N breaks"), _("2: No word wrapping, both \\n and \\N break"), _("3: Smart wrapping, bottom line is wider") }; WrapStyle = new wxComboBox(this, -1, "", wxDefaultPosition, wxDefaultSize, 4, wrap_opts, wxCB_READONLY); WrapStyle->SetSelection(c->ass->GetScriptInfoAsInt("WrapStyle")); optionsGrid->Add(new wxStaticText(this,-1,_("Wrap Style: ")),0,wxALIGN_CENTER_VERTICAL,0); optionsGrid->Add(WrapStyle,1,wxEXPAND,0); ScaleBorder = new wxCheckBox(this,-1,_("Scale Border and Shadow")); ScaleBorder->SetToolTip(_("Scale border and shadow together with script/render resolution. If this is unchecked, relative border and shadow size will depend on renderer.")); ScaleBorder->SetValue(boost::iequals(c->ass->GetScriptInfo("ScaledBorderAndShadow"), "yes")); optionsGrid->AddSpacer(0); optionsGrid->Add(ScaleBorder,1,wxEXPAND,0); optionsGrid->AddGrowableCol(1,1); optionsBox->Add(optionsGrid,1,wxEXPAND,0); // Button sizer wxStdDialogButtonSizer *ButtonSizer = CreateStdDialogButtonSizer(wxOK | wxCANCEL | wxHELP); Bind(wxEVT_BUTTON, &DialogProperties::OnOK, this, wxID_OK); Bind(wxEVT_BUTTON, std::bind(&HelpButton::OpenPage, "Properties"), wxID_HELP); // MainSizer wxSizer *MainSizer = new wxBoxSizer(wxVERTICAL); MainSizer->Add(TopSizer,0,wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND,5); MainSizer->Add(ResSizer,0,wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND,5); MainSizer->Add(optionsBox,0,wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND,5); MainSizer->Add(ButtonSizer,0,wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND,5); SetSizerAndFit(MainSizer); CenterOnParent(); }
DialogJumpTo::DialogJumpTo(agi::Context *c) : wxDialog(c->parent, -1, _("Jump to"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxWANTS_CHARS) , c(c) , jumpframe(c->videoController->GetFrameN()) { SetIcon(GETICON(jumpto_button_16)); auto LabelFrame = new wxStaticText(this, -1, _("Frame: ")); auto LabelTime = new wxStaticText(this, -1, _("Time: ")); JumpFrame = new wxTextCtrl(this,-1,"",wxDefaultPosition,wxSize(-1,-1),wxTE_PROCESS_ENTER, IntValidator((int)jumpframe)); JumpFrame->SetMaxLength(std::to_string(c->videoController->GetLength() - 1).size()); JumpTime = new TimeEdit(this, -1, c, AssTime(c->videoController->TimeAtFrame(jumpframe)).GetAssFormated(), wxSize(-1,-1)); auto TimesSizer = new wxGridSizer(2, 5, 5); TimesSizer->Add(LabelFrame, 1, wxALIGN_CENTER_VERTICAL); TimesSizer->Add(JumpFrame, wxEXPAND); TimesSizer->Add(LabelTime, 1, wxALIGN_CENTER_VERTICAL); TimesSizer->Add(JumpTime, wxEXPAND); auto ButtonSizer = CreateStdDialogButtonSizer(wxOK | wxCANCEL); // General layout auto MainSizer = new wxBoxSizer(wxVERTICAL); MainSizer->Add(TimesSizer, 0, wxALL | wxALIGN_CENTER, 5); MainSizer->Add(ButtonSizer, 0, wxEXPAND | wxLEFT | wxBOTTOM | wxRIGHT, 5); SetSizerAndFit(MainSizer); CenterOnParent(); Bind(wxEVT_INIT_DIALOG, &DialogJumpTo::OnInitDialog, this); Bind(wxEVT_TEXT_ENTER, &DialogJumpTo::OnOK, this); Bind(wxEVT_BUTTON, &DialogJumpTo::OnOK, this, wxID_OK); JumpTime->Bind(wxEVT_TEXT, &DialogJumpTo::OnEditTime, this); JumpFrame->Bind(wxEVT_TEXT, &DialogJumpTo::OnEditFrame, this); }