コード例 #1
0
    static public EncoderConfigurationWindow View(
        Constants.EncoderGI encoderGI, EncoderConfigurationSQLObject econfSO,
        string anchorage_str, int extraWeightN)
    {
        if (EncoderConfigurationWindowBox == null)
        {
            EncoderConfigurationWindowBox = new EncoderConfigurationWindow();
        }

        EncoderConfigurationWindowBox.encoderGI = encoderGI;
        EncoderConfigurationWindowBox.updateGUIFromEncoderConfiguration(econfSO.encoderConfiguration);
        EncoderConfigurationWindowBox.main_gui_anchorage_str = anchorage_str;
        EncoderConfigurationWindowBox.main_gui_extraWeightN  = extraWeightN;

        EncoderConfigurationWindowBox.createTreeView();
        EncoderConfigurationWindowBox.fillTreeView(
            SqliteEncoderConfiguration.Select(false, encoderGI, ""),                     //all
            econfSO);

        //A) side is hidden at start to ensure scr_treeview_select is scrolled and displays correctly the last row
        EncoderConfigurationWindowBox.notebook_side.Visible = false;

        EncoderConfigurationWindowBox.encoder_configuration.Show();

        //B) side is shown now, after showing the window in order to be displayed correctly (see A)
        EncoderConfigurationWindowBox.notebook_side.Visible = (EncoderConfigurationWindowBox.sideMode != sideModes.HIDDEN);

        return(EncoderConfigurationWindowBox);
    }
コード例 #2
0
    protected void on_delete_event(object o, DeleteEventArgs args)
    {
        args.RetVal = true;

        if (capturing)
        {
            button_encoder_capture_inertial_cancel.Click();
        }

        EncoderConfigurationWindowBox.encoder_configuration.Hide();
        EncoderConfigurationWindowBox = null;
    }
コード例 #3
0
    static public EncoderConfigurationWindow View(bool gravitatory, EncoderConfiguration ec, bool definedInConfig)
    {
        /*
         * if we are on gravitatory but ec is inertial, then put definedInConfig as false
         * and create a new ec that suits
         */
        if (ec.has_inertia == gravitatory)
        {
            definedInConfig = false;
            if (gravitatory)
            {
                ec = new EncoderConfiguration();                 //LINEAR, not inertial
            }
            else
            {
                ec = new EncoderConfiguration(Constants.EncoderConfigurationNames.ROTARYAXISINERTIAL);
                ec.SetInertialDefaultOptions();
            }
        }

        if (EncoderConfigurationWindowBox == null)
        {
            EncoderConfigurationWindowBox = new EncoderConfigurationWindow(definedInConfig);
        }

        //activate default radiobutton
        if (ec.type == Constants.EncoderType.ROTARYFRICTION)
        {
            EncoderConfigurationWindowBox.radio_rotary_friction.Active = true;
        }
        else if (ec.type == Constants.EncoderType.ROTARYAXIS)
        {
            EncoderConfigurationWindowBox.radio_rotary_axis.Active = true;
        }
        else            //linear
        {
            EncoderConfigurationWindowBox.radio_linear.Active = true;
        }

        if (!ec.has_inertia)
        {
            EncoderConfigurationWindowBox.radio_gravity.Active = true;
        }
        else
        {
            EncoderConfigurationWindowBox.radio_inertia.Active = true;
        }

        EncoderConfigurationWindowBox.check_rotary_friction_inertia_on_axis.Active = ec.rotaryFrictionOnAxis;


        EncoderConfigurationWindowBox.initializeList(ec.type, ec.has_inertia, ec.rotaryFrictionOnAxis, ec.position);

        EncoderConfigurationWindowBox.create_list_d_spinbutton();

        EncoderConfigurationWindowBox.putValuesStoredPreviously(
            ec.d, ec.list_d, ec.D, ec.anglePush, ec.angleWeight,
            ec.inertiaMachine, ec.extraWeightGrams, ec.extraWeightLength,
            ec.has_gearedDown, ec.GearedUpDisplay());


        //id definedInConfig then only few things can change
        if (definedInConfig)
        {
            EncoderConfigurationWindowBox.hbox_encoder_types.Visible = false;
            EncoderConfigurationWindowBox.check_rotary_friction_inertia_on_axis.Visible = false;
            EncoderConfigurationWindowBox.alignment_options.Visible    = false;
            EncoderConfigurationWindowBox.vbox_inertia_calcule.Visible = false;
        }

        EncoderConfigurationWindowBox.encoder_configuration.Show();
        return(EncoderConfigurationWindowBox);
    }
コード例 #4
0
    /*
     * void on_button_encoder_capture_inertial_finish_clicked (object o, EventArgs args) {
     *      //signal is raised and managed in gui/encoder.cs
     * }
     */

    private void on_button_cancel_clicked(object o, EventArgs args)
    {
        EncoderConfigurationWindowBox.encoder_configuration.Hide();
        EncoderConfigurationWindowBox = null;
    }
コード例 #5
0
ファイル: encoder.cs プロジェクト: GNOME/chronojump
    void on_button_encoder_select_clicked(object o, EventArgs args)
    {
        encoder_configuration_win = EncoderConfigurationWindow.View(
                radio_menuitem_mode_power_gravitatory.Active, //false if inertial
                encoderConfigurationCurrent,
                encoderConfigurationDefinedFromFile  //defined at chronojump_config.txt and only few changes can be done
                );
        encoder_configuration_win.Button_accept.Clicked += new EventHandler(on_encoder_configuration_win_accepted);

        //unregister eventHandler first, then register. This avoids to have registered twice
        try {
            encoder_configuration_win.Button_encoder_capture_inertial_do.Clicked -=
                new EventHandler(on_encoder_configuration_win_capture_inertial_do);
        } catch { }
        encoder_configuration_win.Button_encoder_capture_inertial_do.Clicked +=
            new EventHandler(on_encoder_configuration_win_capture_inertial_do);

        encoder_configuration_win.Button_encoder_capture_inertial_cancel.Clicked +=
            new EventHandler(on_button_encoder_cancel_clicked);
    }