static void do_replay(void) { HDC dc; struct timeval delay; LARGE_INTEGER del; again: if (play_state!=2) { set_buttons(0); CancelWaitableTimer(timer); return; } EnterCriticalSection(&vt_mutex); replay_play(&delay); draw_size(); dc=GetDC(termwnd); draw_vt(dc, chx*vt->sx, chy*vt->sy, vt); ReleaseDC(termwnd, dc); LeaveCriticalSection(&vt_mutex); set_prog(); if (play_state!=2) { set_buttons(1); // finished return; } del.QuadPart=delay.tv_sec; del.QuadPart*=1000000; del.QuadPart+=delay.tv_usec; if (del.QuadPart<=0) goto again; del.QuadPart*=-10; SetWaitableTimer(timer, &del, 0, 0, 0, 0); set_buttons(0); }
static int start_file(char *name) { char buf[MAXFILENAME+20]; int fd; if (play_f!=-1) { replay_abort(); close(play_f); play_f=-1; CancelWaitableTimer(timer); replay_pause(); set_buttons(0); } fd=open_stream(-1, name, SM_READ, 0); if (fd==-1) return 0; play_f=fd; play_format=ttyrec_r_find_format(0, name, "baudrate"); play_filename=name; replay_start(); snprintf(buf, sizeof(buf), "Termplay: %s (%s)", filename, play_format); SetWindowText(wndMain, buf); set_toolbar_state(1); play_state=2; do_replay(); return 1; }
static void object_selected_cb(Object_t *obj, gpointer data) { Selection_t *selection = (Selection_t*) data; gint position = object_get_position_in_list (obj); selection_set_selected (selection, position); set_buttons(selection); }
CVBPlayerItem::CVBPlayerItem(const IVirtualMachine* vm, QWidget* parent) : m_vm_player_item_id(vm->id()) { UNUSED_ARG(parent); pLabelName = new QLabel(this); pLabelState = new QLabel(this); pPlay = new QPushButton("", this); pStop = new QPushButton("", this); p_h_Layout = new QHBoxLayout(NULL); QString name = QString::fromUtf16((ushort*)vm->name().raw()); pLabelName->setMinimumWidth(180); pLabelState->setMinimumWidth(100); pLabelState->setMaximumWidth(100); ushort state = (ushort)vm->state(); pLabelName->setText(name); pLabelState->setText(TrayControlWindow::GetStateName(state)); pPlay->setIcon(QIcon(":/hub/Launch-07.png")); pStop->setIcon(QIcon(":/hub/Stop-07.png")); pPlay->setToolTip("Play/Pause/Resume"); pStop->setToolTip("Power off"); connect(pPlay, SIGNAL(released()), this, SLOT(vbox_menu_btn_play_released()), Qt::QueuedConnection); connect(pStop, SIGNAL(released()), this, SLOT(vbox_menu_btn_stop_released()), Qt::QueuedConnection); // pAdd = new QPushButton("Add", this); // pAdd->setIcon(QIcon(":/hub/play.png")); // connect(pAdd, SIGNAL(released()), // this, SLOT(vbox_menu_btn_add_released())); pRem = new QPushButton("", this); pRem->setIcon(QIcon(":/hub/Delete-07.png")); pRem->setToolTip("Attention! Removes VM. All files will be deleted"); connect(pRem, SIGNAL(released()), this, SLOT(vbox_menu_btn_rem_released()), Qt::QueuedConnection); set_buttons(state); p_h_Layout->addWidget(pLabelName); p_h_Layout->addWidget(pLabelState); p_h_Layout->addWidget(pPlay); p_h_Layout->addWidget(pStop); p_h_Layout->addWidget(pRem); //p_h_Layout->addWidget(pAdd); p_h_Layout->setMargin(1); p_h_Layout->setSpacing(2); p_h_Layout->setObjectName(name); this->setLayout(p_h_Layout); }
static void object_removed_cb(Object_t *obj, gpointer data) { Selection_t *selection = (Selection_t*) data; GtkTreeIter iter; if (selection_find_object (selection, obj, &iter)) { gtk_list_store_remove (GTK_LIST_STORE (selection->store), &iter); set_buttons(selection); } }
static void changed_cb(GtkTreeSelection *selection, gpointer param) { Selection_t *data = (Selection_t*) param; if (data->select_lock) { data->select_lock = FALSE; } else { Command_t *command, *sub_command; GtkTreeModel *model; GList *list, *selected_rows; selected_rows = gtk_tree_selection_get_selected_rows (selection, &model); command = subcommand_start (NULL); sub_command = unselect_all_command_new (data->object_list, NULL); command_add_subcommand (command, sub_command); for (list = selected_rows; list; list = list->next) { Object_t *obj; GtkTreeIter iter; GtkTreePath *path = (GtkTreePath*) list->data; gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, 0, &obj, -1); sub_command = select_command_new (obj); command_add_subcommand (command, sub_command); } command_set_name (command, sub_command->name); subcommand_end (); command_execute (command); g_list_foreach (selected_rows, (GFunc) gtk_tree_path_free, NULL); g_list_free (selected_rows); set_buttons (data); } }
//--------------------------------------------------------------------------------------- void IdfyScalesCtrol::create_answer_buttons(LUnits height, LUnits spacing) { //create buttons for the answers, two rows ImoStyle* pDefStyle = m_pDoc->get_default_style(); ImoInlineWrapper* pBox; ImoStyle* pBtStyle = m_pDoc->create_private_style(); pBtStyle->font_name("sans")->font_size(8.0f); ImoStyle* pRowStyle = m_pDoc->create_private_style(); pRowStyle->font_size(10.0f)->margin_bottom(100.0f); USize buttonSize(3400.0f, height); LUnits rowWidth = 3520.0f; //rows with buttons LibraryScope* pLibScope = m_appScope.get_lomse().get_library_scope(); int iB=0; for (int iRow=0; iRow < k_num_rows; iRow++) { ImoParagraph* pKeyboardRow = m_pDyn->add_paragraph(pRowStyle); pBox = pKeyboardRow->add_inline_box(rowWidth, pDefStyle); m_pRowLabel[iRow] = pBox->add_text_item("?", pRowStyle); // the buttons for this row for (int iCol=0; iCol < k_num_cols; iCol++) { iB = iCol + iRow * k_num_cols; pBox = pKeyboardRow->add_inline_box(rowWidth, pDefStyle); m_pAnswerButton[iB] = pBox->add_button(*pLibScope, "?", buttonSize, pBtStyle); } } set_event_handlers(); //inform base class about the settings set_buttons(m_pAnswerButton, k_num_buttons); }
static void on_zoom_in_clicked(GtkWidget *button, gpointer data) { GtkWidget *graph = GTK_WIDGET(data); graph_zoom(graph, +1); set_buttons(graph); }
LRESULT APIENTRY MainWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_CREATE: create_toolbar(hwnd); create_term(hwnd); create_sysmenu(hwnd); return 0; case WM_SIZE: SendMessage(wndTB, TB_AUTOSIZE, 0, 0); get_def_size(LOWORD(lParam), HIWORD(lParam)); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; case WM_COMMAND: switch (LOWORD(wParam)) { case BUT_OPEN: open_file(); break; case BUT_REWIND: but_rewind: if (play_state==-1) break; EnterCriticalSection(&vt_mutex); replay_pause(); tr.tv_sec=0; tr.tv_usec=0; set_prog(); replay_seek(); LeaveCriticalSection(&vt_mutex); play_state=1; replay_resume(); do_replay(); break; case BUT_PAUSE: if (play_state==1) goto but_unpause; but_pause: CancelWaitableTimer(timer); replay_pause(); set_buttons(1); break; case BUT_PLAY: if (play_state>1) goto but_pause; but_unpause: replay_resume(); do_replay(); set_buttons(1); break; case BUT_SELSTART: if (play_state==-1) break; get_pos(); selstart=tr; set_prog_sel(); break; case BUT_SELEND: if (play_state==-1) break; selend=tr; set_prog_sel(); break; case BUT_EXPORT: if (play_state==-1) break; if (tcmp(selstart, selend)>=0) break; export_file(); break; } return 0; case WM_SYSCOMMAND: switch (LOWORD(wParam)) { default: return DefWindowProc(hwnd, uMsg, wParam, lParam); case BUT_FONT: choose_font(); } return 0; case WM_HSCROLL: if ((HANDLE)lParam==wndSpeed) speed_scrolled(); else if ((HANDLE)lParam==wndProg) prog_scrolled(); return 0; case WM_KEYDOWN: switch (wParam) { case VK_ADD: case 'F': adjust_speed(+1); break; case VK_SUBTRACT: case 'S': adjust_speed(-1); break; case '1': SendMessage(wndSpeed, TBM_SETPOS, 1, 2); speed_scrolled(); break; case 'Q': DestroyWindow(wndMain); break; case 'O': open_file(); break; case VK_SPACE: switch (play_state) { case -1: open_file(); break; case 0: play_state=2; goto but_rewind; case 1: goto but_unpause; case 2: case 3: goto but_pause; } break; case 'R': goto but_rewind; break; case VK_RIGHT: adjust_pos(+10); break; case VK_LEFT: adjust_pos(-10); break; case VK_UP: adjust_pos(+60); break; case VK_DOWN: adjust_pos(-60); break; case VK_PRIOR: adjust_pos(+600); break; case VK_NEXT: adjust_pos(-600); break; } return 0; case WM_SIZING: constrain_size((LPRECT)lParam); return 1; default: return DefWindowProc(hwnd, uMsg, wParam, lParam); } return 0; }
Selection_t* make_selection(ObjectList_t *object_list) { Selection_t *data = g_new(Selection_t, 1); GtkWidget *swin, *frame, *hbox; GtkWidget *toolbar; GtkWidget *list; GtkCellRenderer *renderer; GtkTreeViewColumn *column; data->object_list = object_list; data->selected_child = NULL; data->is_visible = TRUE; data->nr_rows = 0; data->select_lock = FALSE; data->doubleclick = FALSE; data->container = frame = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); gtk_widget_show(frame); hbox = gtk_hbox_new(FALSE, 6); gtk_container_add(GTK_CONTAINER(frame), hbox); gtk_widget_show(hbox); toolbar = make_selection_toolbar(); gtk_container_add(GTK_CONTAINER(hbox), toolbar); /* Create selection */ frame = gimp_frame_new(_("Selection")); gtk_container_add(GTK_CONTAINER(hbox), frame); gtk_widget_show(frame); data->store = gtk_list_store_new (1, G_TYPE_POINTER); data->list = gtk_tree_view_new_with_model (GTK_TREE_MODEL (data->store)); list = data->list; g_object_unref (data->store); renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (N_("#"), renderer, NULL); gtk_tree_view_column_set_cell_data_func (column, renderer, render_nr, data, NULL); gtk_tree_view_column_set_min_width (column, 16); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_append_column (GTK_TREE_VIEW (list), column); column = gtk_tree_view_column_new (); gtk_tree_view_column_set_title (column, _("URL")); renderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start(column, renderer, FALSE); gtk_tree_view_column_set_cell_data_func (column, renderer, render_image, data, NULL); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start (column, renderer, TRUE); gtk_tree_view_column_set_cell_data_func (column, renderer, render_url, data, NULL); gtk_tree_view_column_set_min_width (column, 80); gtk_tree_view_column_set_resizable (column, TRUE); gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_append_column (GTK_TREE_VIEW (list), column); renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("ALT Text"), renderer, NULL); gtk_tree_view_column_set_cell_data_func (column, renderer, render_comment, data, NULL); gtk_tree_view_column_set_min_width (column, 64); gtk_tree_view_column_set_resizable (column, TRUE); gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_append_column (GTK_TREE_VIEW (list), column); renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Target"), renderer, NULL); gtk_tree_view_column_set_cell_data_func (column, renderer, render_target, data, NULL); gtk_tree_view_column_set_min_width (column, 64); gtk_tree_view_column_set_resizable (column, TRUE); gtk_tree_view_column_set_alignment (column, 0.5); gtk_tree_view_append_column (GTK_TREE_VIEW (list), column); /* Create scrollable window */ swin = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_size_request (swin, 16 + 80 + 2 * 64 + 16, -1); gtk_container_add (GTK_CONTAINER(frame), swin); gtk_widget_show (swin); gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW(swin), list); gtk_widget_show (list); /* Drop support */ gtk_drag_dest_set (list, GTK_DEST_DEFAULT_ALL, target_table, 2, GDK_ACTION_COPY); g_signal_connect (list, "drag-data-received", G_CALLBACK(handle_drop), NULL); /* For handling doubleclick */ g_signal_connect (list, "button-press-event", G_CALLBACK(button_press_cb), data); g_signal_connect (list, "button-release-event", G_CALLBACK(button_release_cb), data); /* Callbacks we are interested in */ data->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list)); gtk_tree_selection_set_mode (data->selection, GTK_SELECTION_MULTIPLE); g_signal_connect (data->selection, "changed", G_CALLBACK(changed_cb), data); set_buttons (data); /* Set object list callbacks we're interested in */ object_list_add_add_cb (object_list, object_added_cb, data); object_list_add_update_cb (object_list, object_updated_cb, data); object_list_add_remove_cb (object_list, object_removed_cb, data); object_list_add_select_cb (object_list, object_selected_cb, data); object_list_add_move_cb (object_list, object_moved_cb, data); return data; }