Beispiel #1
0
/* insert a duplicate note and tie to it */
void
tie_notes_key (GtkAction* action, DenemoScriptParam *param)
{
  DenemoObject *curObj = (DenemoObject *) (Denemo.project->movement->currentobject ? Denemo.project->movement->currentobject->data : NULL);

  /* Equals - toggle whether this note is tied */
  if (curObj && curObj->type == CHORD && ((chord *) curObj->object)->notes)
    {
        if (Denemo.project->movement->cursor_appending)
            {
              DenemoMovement *si = Denemo.project->movement;
              gint tickspermeasure =  WHOLE_NUMTICKS * ((DenemoMeasure*)si->currentmeasure->data)->timesig->time1 / ((DenemoMeasure*)si->currentmeasure->data)->timesig->time2;
              si->cursoroffend = (curObj->starttickofnextnote >= tickspermeasure);
              insertion_point (Denemo.project->movement);
              object_insert (Denemo.project, dnm_clone_object (curObj));
              movecursorleft (NULL, NULL);
              movecursorleft (NULL, NULL);
              toggle_tie (NULL, NULL);
              movecursorright (NULL, NULL);
              movecursorright (NULL, NULL);
          } else
          {
              object_insert (Denemo.project, dnm_clone_object (curObj));
              movecursorleft (NULL, NULL);
              ((chord *) ((DenemoObject *)Denemo.project->movement->currentobject->data)->object)->is_tied = 1;
              movecursorright (NULL, NULL);
              movecursorright (NULL, NULL);
          }
    }
}
Beispiel #2
0
static GtkWidget*
sw_make_sg(char *name, GtkSizeGroup *sg) {
    SettingsWidget *sw = sw_lookup(name);
    switch (sw->type) {
    case SW_TOGGLE:
        sw->widget = gtk_check_button_new_with_mnemonic(_(sw->caption));
        toggle_tie(sw);
        return sw->widget;
    case SW_RADIO:
        sw->widget = gtk_radio_button_new_with_mnemonic(NULL,
                     _(sw->caption));
        radio_tie(sw);
        return sw->widget;
    case SW_TEXT:
        sw->widget = gtk_entry_new();
        text_tie(sw);
        return labelled_box_new_sg(_(sw->caption), sw->widget, sg);
    case SW_INTEGER:
        sw->widget = gtk_entry_new();
        gtk_entry_set_width_chars(GTK_ENTRY(sw->widget), 4);
        integer_tie(sw);
        return labelled_box_new(_(sw->caption), sw->widget);
    case SW_SPIN_INTEGER:
    {
        gdouble default_value = *(gint*)sw->conf;
        GtkObject *adj = gtk_adjustment_new(default_value,
                                            /* client code should override these */
                                            G_MINDOUBLE, G_MAXDOUBLE, 1.0, 1.0, 0);
        sw->widget = gtk_spin_button_new(GTK_ADJUSTMENT(adj), 1, 1);
    }
    spin_integer_tie(sw);
    return labelled_box_new_expand(_(sw->caption), sw->widget, FALSE);
    case SW_COMBO:
        sw->widget = gtk_combo_new();
        combo_tie(sw);
        return labelled_box_new(_(sw->caption), sw->widget);
    case SW_COMMAND:
        return command_make(sw);
    case SW_CUSTOM:
        if (sw->caption && sw->widget)
            return labelled_box_new(_(sw->caption), sw->widget);
        break;
    default:
        break;
    }
    return NULL;
}