void MFXAddEditTypedTable::setItemFromControl(FXint r, FXint c, FXWindow* control) { register FXTableItem* item = cells[r * ncols + c]; if (item == NULL) { cells[r * ncols + c] = item = createItem("", NULL, NULL); if (isItemSelected(r, c)) { item->setSelected(FALSE); } } switch (getCellType(c)) { case CT_UNDEFINED: case CT_STRING: item->setFromControl(control); break; case CT_REAL: item->setText(toString(static_cast<FXRealSpinDial*>(control)->getValue()).c_str()); break; case CT_INT: item->setText(toString((int) static_cast<FXRealSpinDial*>(control)->getValue()).c_str()); break; case CT_BOOL: // return myBoolEditor; case CT_ENUM: // return myEnumEditor; default: throw 1; } // current.row = -1; // current.col = -1; EditedTableItem edited; edited.item = item; edited.row = r; edited.col = c; edited.updateOnly = false; killSelection(true); bool accepted = true; if (target) { if (!target->handle(this, FXSEL(SEL_CHANGED, ID_TEXT_CHANGED), (void*) &edited)) { accepted = false; // !!! item->setText(myPreviousText); } } if (accepted) { if (edited.row == getNumRows() - 1) { insertRows(getNumRows(), 1, true); for (int i = 0; i < getNumColumns(); i++) { setItemText(getNumRows() - 1, i, ""); setItemJustify(getNumRows() - 1, i, JUSTIFY_CENTER_X); } } } mode = MOUSE_NONE; }
/************************************************************************* Handler for when input capture is lost *************************************************************************/ void ComboDropList::onCaptureLost(WindowEventArgs& e) { ListWidget::onCaptureLost(e); d_armed = false; hide(); ++e.handled; // ensure 'sticky' selection remains. if (d_lastItemSelected != 0 && isItemSelected(d_lastItemSelected)) { clearSelections(); setIndexSelectionState(d_lastItemSelected, true); } }
void QTodoList::_delete() { if(!isItemSelected()) return; QTodoRadioDialog radio_dialog(tr("Delete todos"),tr("You are about to delete todos")); radio_dialog.setIcon(QTP::editdelete.s(16,16)); radio_dialog.add(QTP::editdelete,tr("Delete todos"),0); if(radio_dialog.exec() != QDialog::Accepted) return; preserveContentsYPos(); QTodoListIterator it(this); QTUM::get()->startRecording(); int last_depth = -1; bool last_deleted = false; for(;it.current();++it) { if(QTodoItem* item = dynamic_cast<QTodoItem*>(it.current())) { if(!item->isSelected()) { if(item->getDepth() - 1 > last_depth) { QTUM::get()->addChange(new QTodoChangeDepth(this,findWidget(item),item->getDepth())); item->setDepth(last_depth+1); } last_depth = item->getDepth(); if(last_deleted) item->setDepth(item->getDepth()); last_deleted = false; continue; } else { last_deleted = true; } it.remove(); } } QTUM::get()->stopRecording(); restoreContentsYPos(); }
void QTodoList::contextMenuUpdate(QPopupMenu* menu) { int cnt = count(); bool b; b = cnt > 0; menu->setItemEnabled(CMID_ADDTODOATBOTTOM,b); b = isItemSelected(); menu->setItemEnabled(CMID_COPY,b); menu->setItemEnabled(CMID_CUT,b); b = !QCB::get()->isEmpty(); menu->setItemEnabled(CMID_PASTE,b); b = cnt > 1; menu->setItemEnabled(CMID_SORT,b); }
void OutfitWindow::mousePressed(gcn::MouseEvent &event) { Window::mousePressed(event); const int index = getIndexFromGrid(event.getX(), event.getY()); if (index == -1) { return; } // Stores the selected item if there is one. if (isItemSelected()) { mItems[mCurrentOutfit][index] = mItemSelected; mItemSelected = -1; } else if (mItems[mCurrentOutfit][index]) { mItemClicked = true; } }
long MyIconList::onFocusInOut(FXObject*o, FXSelector sel, void*p) { long rv=FXIconList::handle(o,sel,p); switch (FXSELTYPE(sel)) { case SEL_FOCUSIN: { if (getNumItems()>0) { if (!isItemSelected(getCurrentItem())) { setCurrentItem(0); selectItem(0, true); target->handle(this,FXSEL(SEL_COMMAND,message),0); } setListStyle(ICONLIST_BROWSESELECT); } break; } case SEL_FOCUSOUT: { setListStyle(ICONLIST_SINGLESELECT); break; } } return rv; }
void OutfitWindow::mouseReleased(gcn::MouseEvent &event) { Window::mouseReleased(event); if (event.getButton() == gcn::MouseEvent::LEFT) { if (isItemSelected()) { mItemSelected = -1; } const int index = getIndexFromGrid(event.getX(), event.getY()); if (index == -1) { mItemMoved = NULL; return; } if (mItemMoved) { mItems[mCurrentOutfit][index] = mItemMoved->getId(); mItemMoved = NULL; } if (mItemClicked) { mItemClicked = false; } } }