void structArtwordEditor :: v_createChildren () { int dy = Machine_getMenuBarHeight (); GuiLabel_createShown (d_windowForm, 40, 100, dy + 3, dy + 3 + Gui_LABEL_HEIGHT, U"Targets:", 0); GuiLabel_createShown (d_windowForm, 5, 65, dy + 20, dy + 20 + Gui_LABEL_HEIGHT, U"Times:", 0); GuiLabel_createShown (d_windowForm, 80, 140, dy + 20, dy + 20 + Gui_LABEL_HEIGHT, U"Values:", 0); list = GuiList_createShown (d_windowForm, 0, 140, dy + 40, dy + 340, true, nullptr); GuiButton_createShown (d_windowForm, 10, 130, dy + 410, dy + 410 + Gui_PUSHBUTTON_HEIGHT, U"Remove target", gui_button_cb_removeTarget, this, 0); drawingArea = GuiDrawingArea_createShown (d_windowForm, 170, 470, dy + 10, dy + 310, gui_drawingarea_cb_expose, gui_drawingarea_cb_click, nullptr, nullptr, this, 0); GuiLabel_createShown (d_windowForm, 220, 270, dy + 340, dy + 340 + Gui_LABEL_HEIGHT, U"Time:", 0); time = GuiText_createShown (d_windowForm, 270, 370, dy + 340, dy + 340 + Gui_TEXTFIELD_HEIGHT, 0); GuiLabel_createShown (d_windowForm, 220, 270, dy + 370, dy + 370 + Gui_LABEL_HEIGHT, U"Value:", 0); value = GuiText_createShown (d_windowForm, 270, 370, dy + 370, dy + 370 + Gui_TEXTFIELD_HEIGHT, 0); GuiButton_createShown (d_windowForm, 240, 360, dy + 410, dy + 410 + Gui_PUSHBUTTON_HEIGHT, U"Add target", gui_button_cb_addTarget, this, GuiButton_DEFAULT); dy = Machine_getMenuBarHeight (); GuiRadioGroup_begin (); for (int i = 1; i <= kArt_muscle_MAX; i ++) { button [i] = GuiRadioButton_createShown (d_windowForm, 480, 0, dy, dy + Gui_RADIOBUTTON_HEIGHT, kArt_muscle_getText (i), gui_radiobutton_cb_toggle, this, 0); dy += Gui_RADIOBUTTON_HEIGHT + Gui_RADIOBUTTON_SPACING - 2; } GuiRadioGroup_end (); feature = 1; GuiRadioButton_set (button [feature]); }
void Artword_draw (Artword me, Graphics g, int feature, bool garnish) { long numberOfTargets = my data [feature]. numberOfTargets; if (numberOfTargets > 0) { autoNUMvector <double> x (1, numberOfTargets); autoNUMvector <double> y (1, numberOfTargets); Graphics_setInner (g); Graphics_setWindow (g, 0, my totalTime, -1.0, 1.0); for (int i = 1; i <= numberOfTargets; i ++) { x [i] = my data [feature]. times [i]; y [i] = my data [feature]. targets [i]; } Graphics_polyline (g, numberOfTargets, & x [1], & y [1]); Graphics_unsetInner (g); } if (garnish) { Graphics_drawInnerBox (g); Graphics_marksBottom (g, 2, true, true, false); Graphics_marksLeft (g, 3, true, true, true); Graphics_textTop (g, false, kArt_muscle_getText (feature)); Graphics_textBottom (g, true, U"Time (s)"); } }