void PianoWindow::update_gui() { char string[BCTEXTLEN]; freqpot->update(synth->config.base_freq); base_freq->update((int64_t)synth->config.base_freq); wetness->update(synth->config.wetness); waveform_to_text(string, synth->config.wavefunction); waveform->set_text(string); update_scrollbar(); update_oscillators(); canvas->update(); }
void ScrollBarOff(register TScreen *screen) { if(!screen->fullVwin.scrollbar) return; XtUnmapWidget(screen->scrollWidget); screen->fullVwin.scrollbar = 0; DoResizeScreen (term); update_scrollbar (); if (screen->visbuf) { XClearWindow (screen->display, XtWindow (term)); Redraw (); } }
void SynthWindow::update_gui() { char string[BCTEXTLEN]; freqpot->update((int)synth->config.base_freq[0]); base_freq->update((float)synth->config.base_freq[0]); wetness->update(synth->config.wetness); waveform_to_text(string, synth->config.wavefunction); waveform->set_text(string); momentary->update(synth->config.momentary_notes); update_scrollbar(); update_oscillators(); canvas->update(); update_note_selection(); show_window(); }
int PianoWindow::resize_event(int w, int h) { clear_box(0, 0, w, h); subwindow->reposition_window(subwindow->get_x(), subwindow->get_y(), subwindow->get_w(), h - subwindow->get_y()); subwindow->clear_box(0, 0, subwindow->get_w(), subwindow->get_h()); scroll->reposition_window(scroll->get_x(), scroll->get_y(), h - scroll->get_y()); update_scrollbar(); update_oscillators(); synth->w = w; synth->h = h; return 1; }
/* * Toggle the visibility of the scrollbars. */ void ToggleScrollBar(XtermWidget xw) { TScreen *screen = TScreenOf(xw); if (IsIcon(screen)) { Bell(xw, XkbBI_MinorError, 0); } else { TRACE(("ToggleScrollBar{{\n")); if (screen->fullVwin.sb_info.width) { ScrollBarOff(xw); } else { ScrollBarOn(xw, False); } update_scrollbar(); TRACE(("...ToggleScrollBar}}\n")); } }
void ScrollBarOff(TScreen *screen) { /* if(!screen->scrollbar) return; */ if(!screen->fullVwin.sb_info.width) return; XtUnmapWidget(screen->scrollWidget); screen->fullVwin.sb_info.width=0; DoResizeScreen (term); update_scrollbar (); if (screen->visbuf) { XClearWindow (screen->display, XtWindow (term)); Redraw (); } }
void ScrollBarOff(XtermWidget xw) { TScreen *screen = TScreenOf(xw); if (!screen->fullVwin.sb_info.width || IsIcon(screen)) return; TRACE(("ScrollBarOff\n")); if (XtIsRealized((Widget) xw)) { XtUnmapWidget(screen->scrollWidget); screen->fullVwin.sb_info.width = 0; DoResizeScreen(xw); update_scrollbar(); if (screen->visbuf) { xtermClear(xw); Redraw(); } } else { Bell(xw, XkbBI_MinorError, 0); } }
static int wheel_cb(Ihandle *ih,float delta,int x,int y,char* status) { int canvas_w, canvas_h; cdCanvas *canvas = (cdCanvas*)IupGetAttribute(ih, "_CD_CANVAS"); (void)x; (void)y; (void)status; if (scale+delta==0) /* skip 0 */ { if (scale > 0) scale = -1; else scale = 1; } else scale += (int)delta; cdCanvasGetSize(canvas, &canvas_w, &canvas_h, NULL, NULL); update_scrollbar(ih, canvas_w, canvas_h); update_viewport(ih, canvas, IupGetFloat(ih, "POSX"), IupGetFloat(ih, "POSY")); IupRedraw(ih, 0); return IUP_DEFAULT; }
void SoundPluginRack::resizeEvent(QResizeEvent * event) { QAbstractScrollArea::resizeEvent(event); update_scrollbar(); }
bool CL_ListView_Impl::on_keyboard_pressed(CL_InputEvent &event) { bool event_consumed = false; if (document_item.get_child_count() == 0) return event_consumed; if (event.id == CL_KEY_LEFT || event.id == CL_KEY_RIGHT || event.id == CL_KEY_UP || event.id == CL_KEY_DOWN) { event_consumed = true; // Ensure we have a selected item. if (selection.get_first().is_null()) { CL_ListViewItem item = document_item.get_first_child(); listview->set_selected(item, true); } CL_ListViewSelectedItem sel = selection.get_last(); CL_ListViewItem sel_item = sel.get_item(); CL_ListViewItem new_selected_item; if (event.id == CL_KEY_LEFT) { if (display_mode == listview_mode_details) { if (sel_item.has_children() && sel_item.is_open()) { sel_item.set_open(false); layout->invalidate(); update_scrollbar(); new_selected_item = sel_item; } else { new_selected_item = layout->get_neighbour(sel_item, CL_ListViewLayout::neighbour_left); } } else { new_selected_item = layout->get_neighbour(sel_item, CL_ListViewLayout::neighbour_left); } } else if (event.id == CL_KEY_RIGHT) { if (display_mode == listview_mode_details) { if (sel_item.has_children() && !sel_item.is_open()) { sel_item.set_open(true); layout->invalidate(); update_scrollbar(); new_selected_item = sel_item; } else { new_selected_item = layout->get_neighbour(sel_item, CL_ListViewLayout::neighbour_right); } } else { new_selected_item = layout->get_neighbour(sel_item, CL_ListViewLayout::neighbour_right); } } else if (event.id == CL_KEY_UP) { new_selected_item = layout->get_neighbour(sel_item, CL_ListViewLayout::neighbour_up); } else if (event.id == CL_KEY_DOWN) { new_selected_item = layout->get_neighbour(sel_item, CL_ListViewLayout::neighbour_down); } if (!event.ctrl) listview->set_selected(new_selected_item); else selection.append(new_selected_item); if (!layout->is_visible(new_selected_item)) { if (event.id == CL_KEY_UP || event.id == CL_KEY_LEFT) { int scroll_pos = scrollbar->get_position(); scroll_pos -= layout->get_row_height(); scrollbar->set_position(scroll_pos); on_scroll(); } else { int scroll_pos = scrollbar->get_position(); scroll_pos += layout->get_row_height(); scrollbar->set_position(scroll_pos); on_scroll(); } } } else if (event.id == CL_KEY_F2) { std::vector<ListViewShownItem> &items = layout->get_shown_items(); std::vector<ListViewShownItem>::iterator it; for (it = items.begin(); it != items.end(); ++it) { ListViewShownItem &si = (*it); if (si.is_null()) continue; if (si.item.is_null()) continue; if (si.item.is_selected()) edit_item(*it); } } else if (event.type == CL_InputEvent::pressed && event.id == CL_KEY_HOME) { scrollbar->set_position(scrollbar->get_min()); on_scroll(); std::vector<ListViewShownItem> show_items = layout->get_shown_items(); if (!show_items.empty()) listview->set_selected(show_items[0].item, true); } else if (event.type == CL_InputEvent::pressed && event.id == CL_KEY_END) { scrollbar->set_position(scrollbar->get_max()); on_scroll(); std::vector<ListViewShownItem> show_items = layout->get_shown_items(); if (!show_items.empty()) listview->set_selected(show_items.back().item, true); } else if (event.type == CL_InputEvent::pressed && event.id == CL_KEY_PRIOR) { // PageUp - selects the first item of the visible items if another item is selected. // If first item already selected, do a page up. std::vector<ListViewShownItem> show_items = layout->get_shown_items(); if (show_items.size() > 1) { if (selection.get_first().get_item() != show_items[0].item) listview->set_selected(show_items[0].item, true); else { scrollbar->set_position(scrollbar->get_position()-scrollbar->get_page_step()); on_scroll(); std::vector<ListViewShownItem> show_items = layout->get_shown_items(); if (!show_items.empty()) listview->set_selected(show_items[0].item, true); } } } else if (event.type == CL_InputEvent::pressed && event.id == CL_KEY_NEXT) { // PageDown - selects the last item of the visible items if last item is selected. // If last item is already selected, do a page down. std::vector<ListViewShownItem> show_items = layout->get_shown_items(); if (show_items.size() > 1) { if (selection.get_first().get_item() != show_items.back().item) listview->set_selected(show_items.back().item, true); else { scrollbar->set_position(scrollbar->get_position() + scrollbar->get_page_step()); on_scroll(); std::vector<ListViewShownItem> show_items = layout->get_shown_items(); if (!show_items.empty()) listview->set_selected(show_items.back().item, true); } } } else { if (!func_key_pressed.is_null()) func_key_pressed.invoke(event); } return event_consumed; }
int PianoWindow::create_objects() { BC_MenuBar *menu; add_subwindow(menu = new BC_MenuBar(0, 0, get_w())); BC_Menu *levelmenu, *phasemenu, *harmonicmenu; menu->add_menu(levelmenu = new BC_Menu(_("Level"))); menu->add_menu(phasemenu = new BC_Menu(_("Phase"))); menu->add_menu(harmonicmenu = new BC_Menu(_("Harmonic"))); levelmenu->add_item(new PianoLevelInvert(synth)); levelmenu->add_item(new PianoLevelMax(synth)); levelmenu->add_item(new PianoLevelRandom(synth)); levelmenu->add_item(new PianoLevelSine(synth)); levelmenu->add_item(new PianoLevelSlope(synth)); levelmenu->add_item(new PianoLevelZero(synth)); phasemenu->add_item(new PianoPhaseInvert(synth)); phasemenu->add_item(new PianoPhaseRandom(synth)); phasemenu->add_item(new PianoPhaseSine(synth)); phasemenu->add_item(new PianoPhaseZero(synth)); harmonicmenu->add_item(new PianoFreqEnum(synth)); harmonicmenu->add_item(new PianoFreqEven(synth)); harmonicmenu->add_item(new PianoFreqFibonacci(synth)); harmonicmenu->add_item(new PianoFreqOdd(synth)); harmonicmenu->add_item(new PianoFreqPrime(synth)); int x = 10, y = 30, i; add_subwindow(new BC_Title(x, y, _("Waveform"))); x += 240; add_subwindow(new BC_Title(x, y, _("Wave Function"))); y += 20; x = 10; add_subwindow(canvas = new PianoCanvas(synth, this, x, y, 230, 160)); canvas->update(); x += 240; char string[BCTEXTLEN]; waveform_to_text(string, synth->config.wavefunction); add_subwindow(waveform = new PianoWaveForm(synth, x, y, string)); waveform->create_objects(); y += 30; add_subwindow(new BC_Title(x, y, _("Base Frequency:"))); y += 30; add_subwindow(base_freq = new PianoBaseFreq(synth, x, y)); x += 80; add_subwindow(freqpot = new PianoFreqPot(synth, this, x, y - 10)); base_freq->freq_pot = freqpot; freqpot->freq_text = base_freq; x -= 80; y += 40; add_subwindow(new BC_Title(x, y, _("Wetness:"))); add_subwindow(wetness = new PianoWetness(synth, x + 70, y - 10)); y += 40; add_subwindow(new PianoClear(synth, x, y)); x = 50; y = 220; add_subwindow(new BC_Title(x, y, _("Level"))); x += 75; add_subwindow(new BC_Title(x, y, _("Phase"))); x += 75; add_subwindow(new BC_Title(x, y, _("Harmonic"))); y += 20; x = 10; add_subwindow(subwindow = new PianoSubWindow(synth, x, y, 265, get_h() - y)); x += 265; add_subwindow(scroll = new PianoScroll(synth, this, x, y, get_h() - y)); x += 20; add_subwindow(new PianoAddOsc(synth, this, x, y)); y += 30; add_subwindow(new PianoDelOsc(synth, this, x, y)); update_scrollbar(); update_oscillators(); show_window(); flush(); return 0; }
void SoundPluginRack::h_qscrollbar_range_changed( int,int ) { update_scrollbar(); }
void CL_TreeView_Silver::on_item_changed(const CL_TreeNode &node) { update_scrollbar(true); }
void ScrollBarOn (XtermWidget xw,int init,int doalloc) { register TScreen *screen = &xw->screen; register int border = 2 * screen->border; register int i,j,k; /* if(screen->scrollbar) return; */ if(screen->fullVwin.sb_info.width) return; if (init) { /* then create it only */ if (screen->scrollWidget) return; /* make it a dummy size and resize later */ if ((screen->scrollWidget = CreateScrollBar (xw, -1, - 1, 5)) == NULL) { Bell(XkbBI_MinorError,0); return; } return; } if (!screen->scrollWidget) { Bell (XkbBI_MinorError,0); Bell (XkbBI_MinorError,0); return; } if (doalloc && screen->allbuf) { /* FIXME: this is not integrated well with Allocate */ if((screen->allbuf = (ScrnBuf) realloc((char *) screen->visbuf, (unsigned) MAX_PTRS*(screen->max_row + 2 + screen->savelines) * sizeof(char *))) == NULL) SysError(ERROR_SBRALLOC); screen->visbuf = &screen->allbuf[MAX_PTRS * screen->savelines]; memmove( (char *)screen->visbuf, (char *)screen->allbuf, MAX_PTRS * (screen->max_row + 2) * sizeof (char *)); for (i = k = 0; i < screen->savelines; i++) { k += BUF_HEAD; for (j = BUF_HEAD; j < MAX_PTRS; j++) { if((screen->allbuf[k++] = (Char *)calloc((unsigned) screen->max_col + 1, sizeof(Char))) == NULL) SysError(ERROR_SBRALLOC2); } } } ResizeScrollBar (screen); xtermAddInput(screen->scrollWidget); XtRealizeWidget (screen->scrollWidget); /* Now set the left ptr cursor for the scrollbar [email protected] */ XDefineCursor(XtDisplay(screen->scrollWidget), XtWindow(screen->scrollWidget), screen->arrow); screen->fullVwin.sb_info.rv_cached = False; screen->fullVwin.sb_info.width = screen->scrollWidget->core.width + screen->scrollWidget->core.border_width; ScrollBarDrawThumb(screen->scrollWidget); DoResizeScreen (xw); XtMapWidget(screen->scrollWidget); update_scrollbar (); if (screen->visbuf) { XClearWindow (screen->display, XtWindow (term)); Redraw (); } /* XXX TODO if scrollbar is on right [email protected] */ }
void CL_TreeView_Silver::on_clear() { update_scrollbar(true); }
void CL_ListView_Impl::on_item_added() { layout->invalidate(); update_scrollbar(); listview->request_repaint(); }
void scrollable_widget::set_dim(int w, int h) { widget::set_dim(w, h); update_scrollbar(); }
void scrollable_widget::set_virtual_height(int height) { virtual_height_ = height; update_scrollbar(); }
void SynthWindow::create_objects() { BC_MenuBar *menu; add_subwindow(menu = new BC_MenuBar(0, 0, get_w())); BC_Menu *levelmenu, *phasemenu, *harmonicmenu; menu->add_menu(levelmenu = new BC_Menu(_("Level"))); menu->add_menu(phasemenu = new BC_Menu(_("Phase"))); menu->add_menu(harmonicmenu = new BC_Menu(_("Harmonic"))); levelmenu->add_item(new SynthLevelInvert(synth)); levelmenu->add_item(new SynthLevelMax(synth)); levelmenu->add_item(new SynthLevelRandom(synth)); levelmenu->add_item(new SynthLevelSine(synth)); levelmenu->add_item(new SynthLevelSlope(synth)); levelmenu->add_item(new SynthLevelZero(synth)); phasemenu->add_item(new SynthPhaseInvert(synth)); phasemenu->add_item(new SynthPhaseRandom(synth)); phasemenu->add_item(new SynthPhaseSine(synth)); phasemenu->add_item(new SynthPhaseZero(synth)); harmonicmenu->add_item(new SynthFreqEnum(synth)); harmonicmenu->add_item(new SynthFreqEven(synth)); harmonicmenu->add_item(new SynthFreqFibonacci(synth)); harmonicmenu->add_item(new SynthFreqOdd(synth)); harmonicmenu->add_item(new SynthFreqPrime(synth)); int x = 10, y = 30; add_subwindow(new BC_Title(x, y, _("Waveform"))); x += 240; add_subwindow(new BC_Title(x, y, _("Wave Function"))); y += 20; x = 10; add_subwindow(canvas = new SynthCanvas(synth, this, x, y, 230, 160)); canvas->update(); x += 240; char string[BCTEXTLEN]; waveform_to_text(string, synth->config.wavefunction); add_subwindow(waveform = new SynthWaveForm(synth, x, y, string)); waveform->create_objects(); y += 30; int x1 = x + waveform->get_w() + 10; add_subwindow(new BC_Title(x, y, _("Base Frequency:"))); y += 30; add_subwindow(base_freq = new SynthBaseFreq(synth, this, x, y)); base_freq->update((float)synth->config.base_freq[0]); x += base_freq->get_w() + synth->get_theme()->widget_border; add_subwindow(freqpot = new SynthFreqPot(synth, this, x, y - 10)); base_freq->freq_pot = freqpot; freqpot->freq_text = base_freq; x -= base_freq->get_w() + synth->get_theme()->widget_border; y += 40; add_subwindow(new BC_Title(x, y, _("Wetness:"))); add_subwindow(wetness = new SynthWetness(synth, x + 70, y - 10)); y += 40; add_subwindow(new SynthClear(synth, x, y)); x = 50; y = 220; add_subwindow(new BC_Title(x, y, _("Level"))); x += 75; add_subwindow(new BC_Title(x, y, _("Phase"))); x += 75; add_subwindow(new BC_Title(x, y, _("Harmonic"))); y += 20; x = 10; add_subwindow(osc_subwindow = new BC_SubWindow(x, y, 265, get_h() - y)); x += 265; add_subwindow(osc_scroll = new OscScroll(synth, this, x, y, get_h() - y)); x += 20; add_subwindow(new SynthAddOsc(synth, this, x, y)); y += 30; add_subwindow(new SynthDelOsc(synth, this, x, y)); // Create keyboard y = 30; #include "white_up_png.h" #include "white_hi_png.h" #include "white_dn_png.h" #include "white_checked_png.h" #include "white_checkedhi_png.h" #include "black_up_png.h" #include "black_hi_png.h" #include "black_dn_png.h" #include "black_checked_png.h" #include "black_checkedhi_png.h" white_key[0] = new VFrame(white_up_png); white_key[1] = new VFrame(white_hi_png); white_key[2] = new VFrame(white_checked_png); white_key[3] = new VFrame(white_dn_png); white_key[4] = new VFrame(white_checkedhi_png); black_key[0] = new VFrame(black_up_png); black_key[1] = new VFrame(black_hi_png); black_key[2] = new VFrame(black_checked_png); black_key[3] = new VFrame(black_dn_png); black_key[4] = new VFrame(black_checkedhi_png); add_subwindow(note_subwindow = new BC_SubWindow(x1, y, get_w() - x1, white_key[0]->get_h() + MARGIN + get_text_height(MEDIUMFONT) + MARGIN + get_text_height(MEDIUMFONT) + MARGIN)); add_subwindow(note_scroll = new NoteScroll(synth, this, x1, note_subwindow->get_y() + note_subwindow->get_h(), note_subwindow->get_w())); add_subwindow(momentary = new SynthMomentary(this, x1, note_scroll->get_y() + note_scroll->get_h() + MARGIN, _("Momentary notes"))); add_subwindow(note_instructions = new BC_Title( x1, momentary->get_y() + momentary->get_h() + MARGIN, _("Ctrl or Shift to select multiple notes."))); update_scrollbar(); update_oscillators(); update_notes(); show_window(); }
void CL_ListView_Impl::on_mouse_lbutton_down(CL_GUIMessage_Input &input, CL_InputEvent &input_event) { listview->set_focus(); CL_Point pos = input_event.mouse_pos; pos_mouse_drag_start = pos; lineedit->set_visible(false); listview->set_focus(); if (edited_item.is_item()) { edited_item.impl->selected = true; listview->request_repaint(); edited_item = CL_ListViewItem(); } ListViewShownItem si = layout->get_item_at(pos); if (si.valid == false) return; // Check if opener rect is clicked. if (si.rect_opener.contains(pos)) { si.item.set_open(!si.item.is_open()); layout->invalidate(); listview->request_repaint(); update_scrollbar(); } // Check if icon or text is clicked. if (si.rect_text[0].contains(pos) || si.rect_icon.contains(pos)) { if (si.item.is_selected() && si.item.is_editable()) { edit_item(si); } else { if (multiple_selection && !si.item.is_selected()) { si.item.impl->selected = true; selection.append(si.item); if (!func_selection_changed.is_null()) func_selection_changed.invoke(selection); } else { if (!si.item.is_selected()) { selection.clear(); si.item.impl->selected = true; selection.append(si.item); if (!func_selection_changed.is_null()) func_selection_changed.invoke(selection); } } if (!si.item.is_open()) { si.item.set_open(true); layout->invalidate(); update_scrollbar(); } } listview->request_repaint(); } listview->capture_mouse(true); }
void ScrollBarOn (XtermWidget xw, int init, int doalloc) { #ifdef MOTIF Cursor arrowCursor; #endif /* MOTIF */ register TScreen *screen = &xw->screen; register int i, j, k; if(screen->fullVwin.scrollbar) return; if (init) { /* then create it only */ if (screen->scrollWidget) return; /* make it a dummy size and resize later */ if ((screen->scrollWidget = CreateScrollBar (xw, -1, -1, 5)) == NULL) { Bell(XkbBI_MinorError,0); return; } return; } if (!screen->scrollWidget) { Bell (XkbBI_MinorError,0); Bell (XkbBI_MinorError,0); return; } if (doalloc && screen->allbuf) { /* FIXME: this is not integrated well with Allocate */ if((screen->allbuf = (ScrnBuf) realloc((char *) screen->visbuf, (unsigned) MAX_PTRS*(screen->max_row + 2 + screen->savelines) * sizeof(char *))) == NULL) Error (ERROR_SBRALLOC); screen->visbuf = &screen->allbuf[MAX_PTRS * screen->savelines]; memmove( (char *)screen->visbuf, (char *)screen->allbuf, MAX_PTRS * (screen->max_row + 2) * sizeof (char *)); for (i = k = 0; i < screen->savelines; i++) { k += BUF_HEAD; for (j = BUF_HEAD; j < MAX_PTRS; j++) { if((screen->allbuf[k++] = (Char *)calloc((unsigned) screen->max_col + 1, sizeof(Char))) == NULL) Error (ERROR_SBRALLOC2); } } } ResizeScrollBar (screen); XtRealizeWidget (screen->scrollWidget); #ifdef MOTIF /* define pointer cursor for it */ arrowCursor = XCreateFontCursor(XtDisplay(screen->scrollWidget), XC_left_ptr); XDefineCursor(XtDisplay(screen->scrollWidget), XtWindow(screen->scrollWidget), arrowCursor); XFreeCursor(XtDisplay(screen->scrollWidget), arrowCursor); #endif /* MOTIF */ screen->fullVwin.scrollbar = screen->scrollWidget->core.width + screen->scrollWidget->core.border_width; ScrollBarDrawThumb(screen->scrollWidget); DoResizeScreen (xw); #ifdef SCROLLBAR_RIGHT /* * Adjust the scrollbar position if we're asked to turn on scrollbars * for the first time after the xterm is already running. That makes * the window grow after we've initially configured the scrollbar's * position. (There must be a better way). */ if (term->misc.useRight && screen->fullVwin.fullwidth < term->core.width) XtVaSetValues(screen->scrollWidget, XtNx, screen->fullVwin.fullwidth - screen->scrollWidget->core.border_width, NULL); #endif XtMapWidget(screen->scrollWidget); update_scrollbar (); if (screen->visbuf) { XClearWindow (screen->display, XtWindow (term)); Redraw (); } }