void KMenuBar::setTopLevelMenuInternal(bool top_level) { if(d->forcedTopLevel) top_level = true; d->wasTopLevel = top_level; if(parentWidget() && parentWidget()->topLevelWidget()->isFullScreen()) top_level = false; if(isTopLevelMenu() == top_level) return; d->topLevel = top_level; if(isTopLevelMenu()) { #ifdef Q_WS_X11 d->selection = new KSelectionWatcher(KMenuBarPrivate::makeSelectionAtom(), DefaultScreen(qt_xdisplay())); connect(d->selection, SIGNAL(newOwner(Window)), this, SLOT(updateFallbackSize())); connect(d->selection, SIGNAL(lostOwner()), this, SLOT(updateFallbackSize())); #endif d->frameStyle = frameStyle(); d->lineWidth = lineWidth(); d->margin = margin(); d->fallback_mode = false; bool wasShown = !isHidden(); reparent(parentWidget(), WType_TopLevel | WStyle_Tool | WStyle_Customize | WStyle_NoBorder, QPoint(0, 0), false); #ifdef Q_WS_X11 KWin::setType(winId(), NET::TopMenu); if(parentWidget()) XSetTransientForHint(qt_xdisplay(), winId(), parentWidget()->topLevelWidget()->winId()); #endif QMenuBar::setFrameStyle(NoFrame); QMenuBar::setLineWidth(0); QMenuBar::setMargin(0); updateFallbackSize(); d->min_size = QSize(0, 0); if(parentWidget() && !parentWidget()->isTopLevel()) setShown(parentWidget()->isVisible()); else if(wasShown) show(); } else { #ifdef Q_WS_X11 delete d->selection; d->selection = NULL; #endif setBackgroundMode(PaletteButton); setFrameStyle(d->frameStyle); setLineWidth(d->lineWidth); setMargin(d->margin); setMinimumSize(0, 0); setMaximumSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX); updateMenuBarSize(); if(parentWidget()) reparent(parentWidget(), QPoint(0, 0), !isHidden()); } }
FlowController::FlowController(Sensor * s, Actuator *a, Component *p, const std::string & name) : FlowMeter(s, p, name), actuator(a), flow_set(0) { // hack to make Bank and Mix work properly if (p && (dynamic_cast<Mix *>(p) || dynamic_cast<Bank *>(p)) ) { reparent(0); reparent(p); } if (a && a->parent() != this) a->reparent(this); }
void map_client(client_t *c) { XWindowAttributes attr; strut_t s = { 0, 0, 0, 0 }; XWMHints *hints; int btn, want_raise = 1; XGrabServer(dpy); XGetWindowAttributes(dpy, c->win, &attr); collect_struts(c, &s); if (attr.map_state == IsViewable) { c->ignore_unmap++; reparent(c, &s); if (get_wm_state(c->win) == IconicState) { c->ignore_unmap++; XUnmapWindow(dpy, c->win); } else { set_wm_state(c, NormalState); do_map(c, want_raise); } } else { if ((hints = XGetWMHints(dpy, c->win))) { if (hints->flags & StateHint) set_wm_state(c, hints->initial_state); XFree(hints); } else { set_wm_state(c, NormalState); } if (!init_geom(c, &s) && opt_imap) { btn = sweep(c, map_curs, recalc_map, SWEEP_DOWN, &s); if (btn == Button2) btn = sweep(c, resize_curs, recalc_resize, SWEEP_UP, &s); if (btn == Button3) want_raise = 0; } #ifdef DEBUG dump_geom(c, "set to"); dump_info(c); #endif reparent(c, &s); if (get_wm_state(c->win) == NormalState) do_map(c, want_raise); } XSync(dpy, False); c->name = get_wm_name(c->win); // horrible kludge XUngrabServer(dpy); }
Bank::Bank(Component *p, const std::string & name, unsigned numOdors, unsigned cleanOdor, const OdorTable & ot) : Component(p, name), currentodor(0), num_odors(numOdors), clean_odor(cleanOdor), flow(0) { if (clean_odor >= num_odors) clean_odor = 0; setOdorTable(ot); // hack to make Mix work properly if (p && dynamic_cast<Mix *>(p) ) { reparent(0); reparent(p); } }
void QAquaFocusWidget::setFocusWidget(QWidget * widget) { hide(); if(d) { if(d->parentWidget()) d->parentWidget()->removeEventFilter(this); d->removeEventFilter(this); } d = NULL; if(widget && widget->parentWidget()) { d = widget; reparent(FOCUS_WIDGET_PARENT(d), pos()); d->installEventFilter(this); d->parentWidget()->installEventFilter(this); //we do this so we can trap the ChildAdded event if (QComboBox *combo = ::qt_cast<QComboBox *>(d)) combo->lineEdit()->installEventFilter(this); QPoint p(widget->mapTo(parentWidget(), QPoint(0, 0))); setGeometry(p.x() - focusOutset(), p.y() - focusOutset(), widget->width() + (focusOutset() * 2), widget->height() + (focusOutset() * 2)); setPalette(widget->palette()); setBackgroundMode(widget->backgroundMode()); setMask(QRegion(rect()) - focusRegion()); raise(); show(); } }
void EvasTargetWidget::enableFullscreen(void) { fullscreen = 1; setFixedSize(qApp->desktop()->size()); showNormal(); reparent(0, WStyle_Customize|WStyle_NoBorder, QPoint(0,0)); showFullScreen(); }
/// construct a new nested named component, adding it to parent's list Component::Component(Component *p, const std::string & n) : _parent(0), nam(""), cid(compIdCtr++) { if (!n.length()) setName(NAMELESS); else setName(n); reparent(p); if (name() != NAMELESS) nameCompMap[name()] = this; idCompMap[id()] = this; }
QTreeWidgetItem *GenericPanel::addProject(QETProject *project, QTreeWidgetItem *parent_item, PanelOptions options) { if (!project) return(0); bool creation_required; QTreeWidgetItem *project_qtwi = getItemForProject(project, &creation_required); updateProjectItem(project_qtwi, project, options, creation_required); reparent(project_qtwi, parent_item); fillProjectItem(project_qtwi, project, options, creation_required); return(project_qtwi); }
void GoRide::enableFullscreen() { // Make sure size is correct setFixedSize(qApp->desktop()->size()); // This call is needed because showFullScreen won't work // correctly if the widget already considers itself to be fullscreen. showNormal(); // This is needed because showNormal() forcefully changes the window // style to WSTyle_TopLevel. reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0)); // Enable fullscreen. showFullScreen(); }
void VirtualConsole::createContents(QList<QString> &list) { QString t; DMXWidget::globalDMXWidgetIDReset(); if (m_drawArea != NULL) { delete m_drawArea; m_drawArea = NULL; } for (QString* s = list.next(); s != NULL; s = list.next()) { if (*s == QString("Entry")) { s = list.next(); if (*s == QString("Virtual Console")) { createVirtualConsole(list); } else if (*s == QString("Frame")) { list.prev(); createWidget(list); } else if (*s == QString("Button")) { list.prev(); createWidget(list); } else if (*s == QString("SpeedSlider")) { list.prev(); createWidget(list); } else { // Unknown keyword, skip list.next(); } } else { list.next(); } } // Virtual console sometimes loses its parent (or vice versa) // when loading a new document... try to handle it with this. reparent((QWidget*) _app->workspace(), 0, pos(), isVisible()); }
void OSMDIChildWnd::attachMDI(OSMDIParentWnd *mdiparent) { if (!detached) return; if (!mdiparent) mdiparent = m_oldparent; setMDIParent(mdiparent); detached = 0; reparent(mdiparent->getMDIClient()); #ifdef DETACHABLE HMENU sysm = GetSystemMenu(getOsWindowHandle(), FALSE); UINT currentID = MDICHILD_SYSMENU_DETACH; ModifyMenu(sysm,MDICHILD_SYSMENU_DETACH,MF_STRING,(UINT_PTR)currentID,"Detach from main window"); #endif //SetMenu(gethWnd(), NULL); fucko }
void TextFloat::setText(const QString &text) { // Call reparent() only if we are going to use text float from a // newly entered widget if (m_newlyAttached) { reparent(m_widget); m_newlyAttached = false; } // then wrap to BaseTextFloat BaseTextFloat::setText(text); }
void TextFloat::display(QPoint offset) { // Call reparent() only if we are going to use text float from a // newly entered widget if (m_newlyAttached) { reparent(m_widget); m_newlyAttached = false; } // then wrap to BaseTextFloat BaseTextFloat::display(offset); }
Component::~Component() { reparent(0); ComponentList childListCopy = childList; // need to work on a copy of the set due to iterator problems when deleting the children which attempt to remove themselves from the set.. // clear these two to make the below delete call (which ultimately calls // reparent and childAdded()) peppier.. childList.clear(); childNameMap.clear(); for (ComponentList::iterator it = childListCopy.begin(); it != childListCopy.end(); ++it) delete (*it); idCompMap.erase(id()); NameMap::iterator it = nameCompMap.find(nam); if (it != nameCompMap.end() && it->second == this) nameCompMap.erase(it); }
void App::setFullScreen(bool fullScreen) { static QSize normalsize; if (fullScreen) { if (!normalsize.isValid()) normalsize = size(); setFixedSize(qApp->desktop()->size()); showNormal(); reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint (0, 0)); QMainWindow::showFullScreen(); } else { showNormal(); reparent(0, 0, QPoint (0, 0)); resize(normalsize); showMaximized(); normalsize = QSize(); } }
FloatWidget::FloatWidget(Gtk::Widget& parent, int width, int height) : m_width(width), m_height(height) { m_parent = &parent; resize(m_width, m_height); set_decorated(false); set_keep_above(); set_skip_taskbar_hint(true); set_skip_pager_hint(true); set_type_hint(Gdk::WINDOW_TYPE_HINT_UTILITY); reparent(parent); m_widgetlist.insert(this); }
bool QAquaFocusWidget::eventFilter(QObject * o, QEvent * e) { if((e->type() == QEvent::ChildInserted || e->type() == QEvent::ChildRemoved) && ((QChildEvent*)e)->child() == this) { if(e->type() == QEvent::ChildRemoved) o->removeEventFilter(this); //once we're removed, stop listening return TRUE; //block child events } else if(o == d) { switch (e->type()) { case QEvent::PaletteChange: setPalette(d->palette()); break; case QEvent::Hide: hide(); break; case QEvent::Show: show(); break; case QEvent::Move: { QPoint p(d->mapTo(parentWidget(), QPoint(0, 0))); move(p.x() - focusOutset(), p.y() - focusOutset()); break; } case QEvent::Resize: { QResizeEvent *re = (QResizeEvent*)e; resize(re->size().width() + (focusOutset() * 2), re->size().height() + (focusOutset() * 2)); setMask(QRegion(rect()) - focusRegion()); break; } case QEvent::Reparent: { QWidget *newp = FOCUS_WIDGET_PARENT(d); QPoint p(d->mapTo(newp, QPoint(0, 0))); newp->installEventFilter(this); reparent(newp, p); raise(); break; } default: break; } } else if (QComboBox *combo = ::qt_cast<QComboBox *>(d)) { if (combo->lineEdit() == o && e->type() == QEvent::FocusOut) QApplication::sendEvent(combo, e); } return FALSE; }
void FLReportViewer::rptViewerReparent(QWidget *parentFrame) { if (!parentFrame) return; QAction *actExit = ::qt_cast<QAction *>(child("salir", "QAction")); if (actExit) actExit->setVisible(false); reparent(parentFrame, 0, QPoint(0, 0)); if (!parentFrame->layout()) { QVBoxLayout *lay = new QVBoxLayout(parentFrame); lay->addWidget(this); } else parentFrame->layout()->add(this); QWidget::show(); }
void OSMDIChildWnd::detachMDI() { if (detached) return; detached = 1; if(m_parent) { OSMDIClientWnd * realparent = m_parent->getMDIClient(); if ( realparent ) realparent->unregisterRootWndChild(this); m_parent->updateMDIControlButtons(isMaximized()); } m_oldparent = m_parent; setMDIParent(NULL); reparent(NULL); #ifdef DETACHABLE HMENU sysm = GetSystemMenu(getOsWindowHandle(), FALSE); UINT currentID = MDICHILD_SYSMENU_DETACH; ModifyMenu(sysm,MDICHILD_SYSMENU_DETACH,MF_STRING,(UINT_PTR)currentID,"Attach to main window"); #endif //if (getMenu()) SetMenu(gethWnd(), getMenu()); fucko }
void VCButton::copyFrom(VCButton* button) { attachFunction(button->m_functionID); m_resizeMode = false; assert(button->keyBind()); if (m_keyBind) { disconnect(m_keyBind); delete m_keyBind; } m_keyBind = new KeyBind(button->keyBind()); connect(m_keyBind, SIGNAL(pressed()), this, SLOT(pressFunction())); connect(m_keyBind, SIGNAL(released()), this, SLOT(releaseFunction())); setToggleButton(true); setCaption(button->caption()); if (button->ownFont()) { setFont(button->font()); } if (button->ownPalette()) { setPaletteForegroundColor(button->paletteForegroundColor()); setPaletteBackgroundColor(button->paletteBackgroundColor()); } if (button->paletteBackgroundPixmap()) { setPaletteBackgroundPixmap(*button->paletteBackgroundPixmap()); } reparent(button->parentWidget(), 0, QPoint(0, 0), true); setGeometry(button->geometry()); move(button->x() + button->width(), button->y()); }
void PopupMenuEditor::init() { reparent( ( QMainWindow * ) formWnd->mainContainer(), pos() ); addItem.action()->setMenuText( tr("new item") ); addSeparator.action()->setMenuText( tr("new separator") ); setAcceptDrops( TRUE ); setFocusPolicy( StrongFocus ); lineEdit = new QLineEdit( this ); lineEdit->hide(); lineEdit->setFrameStyle(QFrame::Plain | QFrame::NoFrame); lineEdit->polish(); lineEdit->setBackgroundOrigin(ParentOrigin); lineEdit->setBackgroundMode(PaletteButton); lineEdit->installEventFilter( this ); dropLine = new QWidget( this, 0, Qt::WStyle_NoBorder | WStyle_StaysOnTop ); dropLine->setBackgroundColor( Qt::red ); dropLine->hide(); hide(); }
void VirtualConsole::createContents(QPtrList <QString> &list) { QString t; VCFrame::ResetID(); if (m_drawArea != NULL) { delete m_drawArea; m_drawArea = NULL; } for (QString* s = list.next(); s != NULL; s = list.next()) { if (*s == QString("Entry")) { s = list.next(); if (*s == QString("Virtual Console")) { createVirtualConsole(list); } else if (*s == QString("Frame")) { list.prev(); createWidget(list); } else if (*s == QString("Button")) { list.prev(); createWidget(list); } else if (*s == QString("Label")) { list.prev(); createWidget(list); } else if (*s == QString("Slider")) { list.prev(); createWidget(list); } else { // Unknown keyword, skip list.next(); } } else { list.next(); } } // Virtual console sometimes loses its parent (or vice versa) // when loading a new document... try to handle it with this. reparent((QWidget*) _app->workspace(), 0, pos(), isVisible()); // Check if VC should be open QString config; _app->settings()->get(KEY_VIRTUAL_CONSOLE_OPEN, config); if (config == Settings::trueValue()) { _app->slotViewVirtualConsole(); } else { hide(); _app->slotVirtualConsoleClosed(); } }
void VCFrame::createContents(QPtrList <QString> &list) { QRect rect(30, 30, 30, 30); for (QString* s = list.next(); s != NULL; s = list.next()) { if (*s == QString("Entry")) { s = list.prev(); break; } else if (*s == QString("ID")) { setID(list.next()->toInt()); } else if (*s == QString("ButtonBehaviour")) { setButtonBehaviour(static_cast<ButtonBehaviour> (list.next()->toInt())); } else if (*s == QString("Parent")) { if (m_bottomFrame == false) { VCFrame* parent = _app->virtualConsole()->getFrame(list.next()->toInt()); if (parent != NULL) { reparent((QWidget*) parent, 0, QPoint(0, 0), true); } } else { list.next(); } } else if (*s == QString("Textcolor")) { QColor qc; qc.setRgb(list.next()->toUInt()); setPaletteForegroundColor(qc); } else if (*s == QString("Backgroundcolor")) { QColor qc; qc.setRgb(list.next()->toUInt()); setPaletteBackgroundColor(qc); } else if (*s == QString("Color")) { // Backwards compatibility for frame background color QString t = *(list.next()); int i = t.find(QString(",")); int r = t.left(i).toInt(); int j = t.find(QString(","), i + 1); int g = t.mid(i+1, j-i-1).toInt(); int b = t.mid(j+1).toInt(); QColor qc(r, g, b); setPaletteBackgroundColor(qc); } else if (*s == QString("Pixmap")) { QString t; t = *(list.next()); QPixmap pm(t); if (pm.isNull() == false) { setIconText(t); setPaletteBackgroundPixmap(pm); } } else if (*s == QString("Font")) { QFont f = font(); QString q = *(list.next()); f.fromString(q); setFont(f); } else if (*s == QString("X")) { rect.setX(list.next()->toInt()); } else if (*s == QString("Y")) { rect.setY(list.next()->toInt()); } else if (*s == QString("Width")) { rect.setWidth(list.next()->toInt()); } else if (*s == QString("Height")) { rect.setHeight(list.next()->toInt()); } else { // Unknown keyword, ignore *list.next(); } } if (m_bottomFrame == false) { setGeometry(rect); } }
/* * Scan each entry in a directory block. */ int dirscan(struct inodesc *idesc) { struct direct *dp; struct bufarea *bp; int dsize, n; long blksiz; #if DIRBLKSIZ > APPLEUFS_DIRBLKSIZ char dbuf[DIRBLKSIZ]; #else char dbuf[APPLEUFS_DIRBLKSIZ]; #endif if (idesc->id_type != DATA) errexit("wrong type to dirscan %d", idesc->id_type); if (idesc->id_entryno == 0 && (idesc->id_filesize & (dirblksiz - 1)) != 0) idesc->id_filesize = roundup(idesc->id_filesize, dirblksiz); blksiz = idesc->id_numfrags * sblock->fs_fsize; if (chkrange(idesc->id_blkno, idesc->id_numfrags)) { idesc->id_filesize -= blksiz; return (SKIP); } /* * If we are are swapping byte order in directory entries, just swap * this block and return. */ if (do_dirswap) { int off; bp = getdirblk(idesc->id_blkno, blksiz); for (off = 0; off < blksiz; off += iswap16(dp->d_reclen)) { dp = (struct direct *)(bp->b_un.b_buf + off); dp->d_ino = bswap32(dp->d_ino); dp->d_reclen = bswap16(dp->d_reclen); if (!newinofmt) { u_int8_t tmp = dp->d_namlen; dp->d_namlen = dp->d_type; dp->d_type = tmp; } if (dp->d_reclen == 0) break; } dirty(bp); idesc->id_filesize -= blksiz; return (idesc->id_filesize > 0 ? KEEPON : STOP); } idesc->id_loc = 0; for (dp = fsck_readdir(idesc); dp != NULL; dp = fsck_readdir(idesc)) { dsize = iswap16(dp->d_reclen); if (dsize > sizeof dbuf) dsize = sizeof dbuf; memmove(dbuf, dp, (size_t)dsize); # if (BYTE_ORDER == LITTLE_ENDIAN) if (!newinofmt && !needswap) { # else if (!newinofmt && needswap) { # endif struct direct *tdp = (struct direct *)dbuf; u_char tmp; tmp = tdp->d_namlen; tdp->d_namlen = tdp->d_type; tdp->d_type = tmp; } idesc->id_dirp = (struct direct *)dbuf; if ((n = (*idesc->id_func)(idesc)) & ALTERED) { # if (BYTE_ORDER == LITTLE_ENDIAN) if (!newinofmt && !doinglevel2 && !needswap) { # else if (!newinofmt && !doinglevel2 && needswap) { # endif struct direct *tdp; u_char tmp; tdp = (struct direct *)dbuf; tmp = tdp->d_namlen; tdp->d_namlen = tdp->d_type; tdp->d_type = tmp; } bp = getdirblk(idesc->id_blkno, blksiz); memmove(bp->b_un.b_buf + idesc->id_loc - dsize, dbuf, (size_t)dsize); dirty(bp); sbdirty(); } if (n & STOP) return (n); } return (idesc->id_filesize > 0 ? KEEPON : STOP); } /* * get next entry in a directory. */ static struct direct * fsck_readdir(struct inodesc *idesc) { struct direct *dp, *ndp; struct bufarea *bp; long size, blksiz, fix, dploc; blksiz = idesc->id_numfrags * sblock->fs_fsize; bp = getdirblk(idesc->id_blkno, blksiz); if (idesc->id_loc % dirblksiz == 0 && idesc->id_filesize > 0 && idesc->id_loc < blksiz) { dp = (struct direct *)(bp->b_un.b_buf + idesc->id_loc); if (dircheck(idesc, dp)) goto dpok; if (idesc->id_fix == IGNORE) return (0); fix = dofix(idesc, "DIRECTORY CORRUPTED"); bp = getdirblk(idesc->id_blkno, blksiz); dp = (struct direct *)(bp->b_un.b_buf + idesc->id_loc); dp->d_reclen = iswap16(dirblksiz); dp->d_ino = 0; dp->d_type = 0; dp->d_namlen = 0; dp->d_name[0] = '\0'; if (fix) dirty(bp); else markclean = 0; idesc->id_loc += dirblksiz; idesc->id_filesize -= dirblksiz; return (dp); } dpok: if (idesc->id_filesize <= 0 || idesc->id_loc >= blksiz) return NULL; dploc = idesc->id_loc; dp = (struct direct *)(bp->b_un.b_buf + dploc); idesc->id_loc += iswap16(dp->d_reclen); idesc->id_filesize -= iswap16(dp->d_reclen); if ((idesc->id_loc % dirblksiz) == 0) return (dp); ndp = (struct direct *)(bp->b_un.b_buf + idesc->id_loc); if (idesc->id_loc < blksiz && idesc->id_filesize > 0 && dircheck(idesc, ndp) == 0) { size = dirblksiz - (idesc->id_loc % dirblksiz); idesc->id_loc += size; idesc->id_filesize -= size; if (idesc->id_fix == IGNORE) return (0); fix = dofix(idesc, "DIRECTORY CORRUPTED"); bp = getdirblk(idesc->id_blkno, blksiz); dp = (struct direct *)(bp->b_un.b_buf + dploc); dp->d_reclen = iswap16(iswap16(dp->d_reclen) + size); if (fix) dirty(bp); else markclean = 0; } return (dp); } /* * Verify that a directory entry is valid. * This is a superset of the checks made in the kernel. */ static int dircheck(struct inodesc *idesc, struct direct *dp) { int size; char *cp; u_char namlen, type; int spaceleft; spaceleft = dirblksiz - (idesc->id_loc % dirblksiz); if (iswap32(dp->d_ino) >= maxino || dp->d_reclen == 0 || iswap16(dp->d_reclen) > spaceleft || (iswap16(dp->d_reclen) & 0x3) != 0) return (0); if (dp->d_ino == 0) return (1); size = DIRSIZ(!newinofmt, dp, needswap); # if (BYTE_ORDER == LITTLE_ENDIAN) if (!newinofmt && !needswap) { # else if (!newinofmt && needswap) { # endif type = dp->d_namlen; namlen = dp->d_type; } else { namlen = dp->d_namlen; type = dp->d_type; } if (iswap16(dp->d_reclen) < size || idesc->id_filesize < size || /* namlen > MAXNAMLEN || */ type > 15) return (0); for (cp = dp->d_name, size = 0; size < namlen; size++) if (*cp == '\0' || (*cp++ == '/')) return (0); if (*cp != '\0') return (0); return (1); } void direrror(ino_t ino, const char *errmesg) { fileerror(ino, ino, errmesg); } void fileerror(ino_t cwd, ino_t ino, const char *errmesg) { union dinode *dp; char pathbuf[MAXPATHLEN + 1]; uint16_t mode; pwarn("%s ", errmesg); pinode(ino); printf("\n"); getpathname(pathbuf, sizeof(pathbuf), cwd, ino); if (ino < ROOTINO || ino > maxino) { pfatal("NAME=%s\n", pathbuf); return; } dp = ginode(ino); if (ftypeok(dp)) { mode = DIP(dp, mode); pfatal("%s=%s\n", (iswap16(mode) & IFMT) == IFDIR ? "DIR" : "FILE", pathbuf); } else pfatal("NAME=%s\n", pathbuf); } void adjust(struct inodesc *idesc, int lcnt) { union dinode *dp; int16_t nlink; int saveresolved; dp = ginode(idesc->id_number); nlink = iswap16(DIP(dp, nlink)); if (nlink == lcnt) { /* * If we have not hit any unresolved problems, are running * in preen mode, and are on a file system using soft updates, * then just toss any partially allocated files. */ if (resolved && preen && usedsoftdep) { clri(idesc, "UNREF", 1); return; } else { /* * The file system can be marked clean even if * a file is not linked up, but is cleared. * Hence, resolved should not be cleared when * linkup is answered no, but clri is answered yes. */ saveresolved = resolved; if (linkup(idesc->id_number, (ino_t)0, NULL) == 0) { resolved = saveresolved; clri(idesc, "UNREF", 0); return; } /* * Account for the new reference created by linkup(). */ dp = ginode(idesc->id_number); lcnt--; } } if (lcnt != 0) { pwarn("LINK COUNT %s", (lfdir == idesc->id_number) ? lfname : ((iswap16(DIP(dp, mode)) & IFMT) == IFDIR ? "DIR" : "FILE")); pinode(idesc->id_number); printf(" COUNT %d SHOULD BE %d", nlink, nlink - lcnt); if (preen || usedsoftdep) { if (lcnt < 0) { printf("\n"); pfatal("LINK COUNT INCREASING"); } if (preen) printf(" (ADJUSTED)\n"); } if (preen || reply("ADJUST") == 1) { DIP_SET(dp, nlink, iswap16(nlink - lcnt)); inodirty(); } else markclean = 0; } } static int mkentry(struct inodesc *idesc) { struct direct *dirp = idesc->id_dirp; struct direct newent; int newlen, oldlen; newent.d_namlen = strlen(idesc->id_name); newlen = DIRSIZ(0, &newent, 0); if (dirp->d_ino != 0) oldlen = DIRSIZ(0, dirp, 0); else oldlen = 0; if (iswap16(dirp->d_reclen) - oldlen < newlen) return (KEEPON); newent.d_reclen = iswap16(iswap16(dirp->d_reclen) - oldlen); dirp->d_reclen = iswap16(oldlen); dirp = (struct direct *)(((char *)dirp) + oldlen); /* ino to be entered is in id_parent */ dirp->d_ino = iswap32(idesc->id_parent); dirp->d_reclen = newent.d_reclen; if (newinofmt) dirp->d_type = inoinfo(idesc->id_parent)->ino_type; else dirp->d_type = 0; dirp->d_namlen = newent.d_namlen; memmove(dirp->d_name, idesc->id_name, (size_t)newent.d_namlen + 1); # if (BYTE_ORDER == LITTLE_ENDIAN) /* * If the entry was split, dirscan() will only reverse the byte * order of the original entry, and not the new one, before * writing it back out. So, we reverse the byte order here if * necessary. */ if (oldlen != 0 && !newinofmt && !doinglevel2 && !needswap) { # else if (oldlen != 0 && !newinofmt && !doinglevel2 && needswap) { # endif u_char tmp; tmp = dirp->d_namlen; dirp->d_namlen = dirp->d_type; dirp->d_type = tmp; } return (ALTERED|STOP); } static int chgino(struct inodesc *idesc) { struct direct *dirp = idesc->id_dirp; if (memcmp(dirp->d_name, idesc->id_name, (int)dirp->d_namlen + 1)) return (KEEPON); dirp->d_ino = iswap32(idesc->id_parent); if (newinofmt) dirp->d_type = inoinfo(idesc->id_parent)->ino_type; else dirp->d_type = 0; return (ALTERED|STOP); } int linkup(ino_t orphan, ino_t parentdir, char *name) { union dinode *dp; int lostdir; ino_t oldlfdir; struct inodesc idesc; char tempname[BUFSIZ]; int16_t nlink; uint16_t mode; memset(&idesc, 0, sizeof(struct inodesc)); dp = ginode(orphan); mode = iswap16(DIP(dp, mode)); nlink = iswap16(DIP(dp, nlink)); lostdir = (mode & IFMT) == IFDIR; pwarn("UNREF %s ", lostdir ? "DIR" : "FILE"); pinode(orphan); if (preen && DIP(dp, size) == 0) return (0); if (preen) printf(" (RECONNECTED)\n"); else if (reply("RECONNECT") == 0) { markclean = 0; return (0); } if (parentdir != 0) inoinfo(parentdir)->ino_linkcnt++; if (lfdir == 0) { dp = ginode(ROOTINO); idesc.id_name = lfname; idesc.id_type = DATA; idesc.id_func = findino; idesc.id_number = ROOTINO; if ((ckinode(dp, &idesc) & FOUND) != 0) { lfdir = idesc.id_parent; } else { pwarn("NO lost+found DIRECTORY"); if (preen || reply("CREATE")) { lfdir = allocdir(ROOTINO, (ino_t)0, lfmode); if (lfdir != 0) { if (makeentry(ROOTINO, lfdir, lfname) != 0) { numdirs++; if (preen) printf(" (CREATED)\n"); } else { freedir(lfdir, ROOTINO); lfdir = 0; if (preen) printf("\n"); } } if (lfdir != 0) { reparent(lfdir, ROOTINO); } } } if (lfdir == 0) { pfatal("SORRY. CANNOT CREATE lost+found DIRECTORY\n\n"); markclean = 0; return (0); } } dp = ginode(lfdir); mode = DIP(dp, mode); mode = iswap16(mode); if ((mode & IFMT) != IFDIR) { pfatal("lost+found IS NOT A DIRECTORY"); if (reply("REALLOCATE") == 0) { markclean = 0; return (0); } oldlfdir = lfdir; lfdir = allocdir(ROOTINO, (ino_t)0, lfmode); if (lfdir == 0) { pfatal("SORRY. CANNOT CREATE lost+found DIRECTORY\n\n"); markclean = 0; return (0); } if ((changeino(ROOTINO, lfname, lfdir) & ALTERED) == 0) { pfatal("SORRY. CANNOT CREATE lost+found DIRECTORY\n\n"); markclean = 0; return (0); } inodirty(); reparent(lfdir, ROOTINO); idesc.id_type = ADDR; idesc.id_func = pass4check; idesc.id_number = oldlfdir; adjust(&idesc, inoinfo(oldlfdir)->ino_linkcnt + 1); inoinfo(oldlfdir)->ino_linkcnt = 0; dp = ginode(lfdir); } if (inoinfo(lfdir)->ino_state != DFOUND) { pfatal("SORRY. NO lost+found DIRECTORY\n\n"); markclean = 0; return (0); } (void)lftempname(tempname, orphan); if (makeentry(lfdir, orphan, (name ? name : tempname)) == 0) { pfatal("SORRY. NO SPACE IN lost+found DIRECTORY"); printf("\n\n"); markclean = 0; return (0); } inoinfo(orphan)->ino_linkcnt--; if (lostdir) { if ((changeino(orphan, "..", lfdir) & ALTERED) == 0 && parentdir != (ino_t)-1) (void)makeentry(orphan, lfdir, ".."); dp = ginode(lfdir); nlink = DIP(dp, nlink); DIP_SET(dp, nlink, iswap16(iswap16(nlink) + 1)); inodirty(); inoinfo(lfdir)->ino_linkcnt++; reparent(orphan, lfdir); pwarn("DIR I=%llu CONNECTED. ", (unsigned long long)orphan); if (parentdir != (ino_t)-1) printf("PARENT WAS I=%llu\n", (unsigned long long)parentdir); if (preen == 0) printf("\n"); } return (1); } /* * fix an entry in a directory. */ int changeino(ino_t dir, const char *name, ino_t newnum) { struct inodesc idesc; memset(&idesc, 0, sizeof(struct inodesc)); idesc.id_type = DATA; idesc.id_func = chgino; idesc.id_number = dir; idesc.id_fix = DONTKNOW; idesc.id_name = name; idesc.id_parent = newnum; /* new value for name */ return (ckinode(ginode(dir), &idesc)); } /* * make an entry in a directory */ int makeentry(ino_t parent, ino_t ino, const char *name) { union dinode *dp; struct inodesc idesc; char pathbuf[MAXPATHLEN + 1]; if (parent < ROOTINO || parent >= maxino || ino < ROOTINO || ino >= maxino) return (0); memset(&idesc, 0, sizeof(struct inodesc)); idesc.id_type = DATA; idesc.id_func = mkentry; idesc.id_number = parent; idesc.id_parent = ino; /* this is the inode to enter */ idesc.id_fix = DONTKNOW; idesc.id_name = name; dp = ginode(parent); if (iswap64(DIP(dp, size)) % dirblksiz) { DIP_SET(dp, size, iswap64(roundup(iswap64(DIP(dp, size)), dirblksiz))); inodirty(); } if ((ckinode(dp, &idesc) & ALTERED) != 0) return (1); getpathname(pathbuf, sizeof(pathbuf), parent, parent); dp = ginode(parent); if (expanddir(dp, pathbuf) == 0) return (0); return (ckinode(dp, &idesc) & ALTERED); } /* * Attempt to expand the size of a directory */ static int expanddir(union dinode *dp, char *name) { daddr_t lastbn, newblk, dirblk; struct bufarea *bp; char *cp; #if DIRBLKSIZ > APPLEUFS_DIRBLKSIZ char firstblk[DIRBLKSIZ]; #else char firstblk[APPLEUFS_DIRBLKSIZ]; #endif struct ufs1_dinode *dp1 = NULL; struct ufs2_dinode *dp2 = NULL; if (is_ufs2) dp2 = &dp->dp2; else dp1 = &dp->dp1; lastbn = lblkno(sblock, iswap64(DIP(dp, size))); if (lastbn >= NDADDR - 1 || DIP(dp, db[lastbn]) == 0 || DIP(dp, size) == 0) return (0); if ((newblk = allocblk(sblock->fs_frag)) == 0) return (0); if (is_ufs2) { dp2->di_db[lastbn + 1] = dp2->di_db[lastbn]; dp2->di_db[lastbn] = iswap64(newblk); dp2->di_size = iswap64(iswap64(dp2->di_size)+sblock->fs_bsize); dp2->di_blocks = iswap64(iswap64(dp2->di_blocks) + btodb(sblock->fs_bsize)); dirblk = iswap64(dp2->di_db[lastbn + 1]); } else { dp1->di_db[lastbn + 1] = dp1->di_db[lastbn]; dp1->di_db[lastbn] = iswap32((int32_t)newblk); dp1->di_size = iswap64(iswap64(dp1->di_size)+sblock->fs_bsize); dp1->di_blocks = iswap32(iswap32(dp1->di_blocks) + btodb(sblock->fs_bsize)); dirblk = iswap32(dp1->di_db[lastbn + 1]); } bp = getdirblk(dirblk, sblksize(sblock, DIP(dp, size), lastbn + 1)); if (bp->b_errs) goto bad; memmove(firstblk, bp->b_un.b_buf, dirblksiz); bp = getdirblk(newblk, sblock->fs_bsize); if (bp->b_errs) goto bad; memmove(bp->b_un.b_buf, firstblk, dirblksiz); emptydir.dot_reclen = iswap16(dirblksiz); for (cp = &bp->b_un.b_buf[dirblksiz]; cp < &bp->b_un.b_buf[sblock->fs_bsize]; cp += dirblksiz) memmove(cp, &emptydir, sizeof emptydir); dirty(bp); bp = getdirblk(dirblk, sblksize(sblock, DIP(dp, size), lastbn + 1)); if (bp->b_errs) goto bad; memmove(bp->b_un.b_buf, &emptydir, sizeof emptydir); pwarn("NO SPACE LEFT IN %s", name); if (preen) printf(" (EXPANDED)\n"); else if (reply("EXPAND") == 0) goto bad; dirty(bp); inodirty(); return (1); bad: if (is_ufs2) { dp2->di_db[lastbn] = dp2->di_db[lastbn + 1]; dp2->di_db[lastbn + 1] = 0; dp2->di_size = iswap64(iswap64(dp2->di_size)-sblock->fs_bsize); dp2->di_blocks = iswap64(iswap64(dp2->di_blocks) - btodb(sblock->fs_bsize)); } else { dp1->di_db[lastbn] = dp1->di_db[lastbn + 1]; dp1->di_db[lastbn + 1] = 0; dp1->di_size = iswap64(iswap64(dp1->di_size)-sblock->fs_bsize); dp1->di_blocks = iswap32(iswap32(dp1->di_blocks) - btodb(sblock->fs_bsize)); } freeblk(newblk, sblock->fs_frag); markclean = 0; return (0); } /* * allocate a new directory */ ino_t allocdir(ino_t parent, ino_t request, int mode) { ino_t ino; char *cp; union dinode *dp; struct bufarea *bp; struct inoinfo *inp; struct dirtemplate *dirp; daddr_t dirblk; ino = allocino(request, IFDIR|mode); if (ino < ROOTINO) return 0; dirhead.dot_reclen = iswap16(12); dirhead.dotdot_reclen = iswap16(dirblksiz - 12); odirhead.dot_reclen = iswap16(12); odirhead.dotdot_reclen = iswap16(dirblksiz - 12); odirhead.dot_namlen = iswap16(1); odirhead.dotdot_namlen = iswap16(2); if (newinofmt) dirp = &dirhead; else dirp = (struct dirtemplate *)&odirhead; dirp->dot_ino = iswap32(ino); dirp->dotdot_ino = iswap32(parent); dp = ginode(ino); dirblk = is_ufs2 ? iswap64(dp->dp2.di_db[0]) : iswap32(dp->dp1.di_db[0]); bp = getdirblk(dirblk, sblock->fs_fsize); if (bp->b_errs) { freeino(ino); return (0); } memmove(bp->b_un.b_buf, dirp, sizeof(struct dirtemplate)); emptydir.dot_reclen = iswap16(dirblksiz); for (cp = &bp->b_un.b_buf[dirblksiz]; cp < &bp->b_un.b_buf[sblock->fs_fsize]; cp += dirblksiz) memmove(cp, &emptydir, sizeof emptydir); dirty(bp); DIP_SET(dp, nlink, iswap16(2)); inodirty(); if (ino == ROOTINO) { inoinfo(ino)->ino_linkcnt = iswap16(DIP(dp, nlink)); cacheino(dp, ino); return(ino); } if (inoinfo(parent)->ino_state != DSTATE && inoinfo(parent)->ino_state != DFOUND) { freeino(ino); return (0); } cacheino(dp, ino); inp = getinoinfo(ino); inp->i_parent = parent; inp->i_dotdot = parent; inoinfo(ino)->ino_state = inoinfo(parent)->ino_state; if (inoinfo(ino)->ino_state == DSTATE) { inoinfo(ino)->ino_linkcnt = iswap16(DIP(dp, nlink)); inoinfo(parent)->ino_linkcnt++; } dp = ginode(parent); DIP_SET(dp, nlink, iswap16(iswap16(DIP(dp, nlink)) + 1)); inodirty(); return (ino); }
// // Create this slider's contents from list // void VCDockSlider::createContents(QPtrList <QString> &list) { QRect rect(0, 0, 60, 200); for (QString* s = list.next(); s != NULL; s = list.next()) { if (*s == QString("Entry")) { s = list.prev(); break; } else if (*s == QString("Name")) { setCaption(*(list.next())); } else if (*s == QString("Parent")) { VCFrame* parent = _app->virtualConsole()->getFrame(list.next()->toInt()); if (parent != NULL) { reparent((QFrame*)parent, 0, QPoint(0, 0), true); } } else if (*s == QString("X")) { rect.setX(list.next()->toInt()); } else if (*s == QString("Y")) { rect.setY(list.next()->toInt()); } else if (*s == QString("Width")) { rect.setWidth(list.next()->toInt()); } else if (*s == QString("Height")) { rect.setHeight(list.next()->toInt()); } else if (*s == QString("Textcolor")) { QColor qc; qc.setRgb(list.next()->toUInt()); setPaletteForegroundColor(qc); } else if (*s == QString("Backgroundcolor")) { QColor qc; qc.setRgb(list.next()->toUInt()); setPaletteBackgroundColor(qc); } else if (*s == QString("Color")) { // Backwards compatibility for slider background color QString t = *(list.next()); int i = t.find(QString(",")); int r = t.left(i).toInt(); int j = t.find(QString(","), i + 1); int g = t.mid(i+1, j-i-1).toInt(); int b = t.mid(j+1).toInt(); QColor qc(r, g, b); setPaletteBackgroundColor(qc); } else if (*s == QString("Pixmap")) { QString t; t = *(list.next()); QPixmap pm(t); if (pm.isNull() == false) { setIconText(t); unsetPalette(); setPaletteBackgroundPixmap(pm); m_valueLabel->setBackgroundOrigin(ParentOrigin); m_slider->setBackgroundOrigin(ParentOrigin); } } else if (*s == QString("Frame")) { if (*(list.next()) == Settings::trueValue()) { setFrameStyle(KFrameStyle); } else { setFrameStyle(NoFrame); } } else if (*s == QString("Font")) { QFont f = font(); QString q = *(list.next()); f.fromString(q); setFont(f); } else if (*s == QString("Bus")) { QString t = *(list.next()); t_bus_value value; if (Bus::value(t.toInt(), value)) { setBusID(t.toInt()); } } else if (*s == QString("BusLowLimit")) { m_busLowLimit = list.next()->toInt(); } else if (*s == QString("BusHighLimit")) { m_busHighLimit = list.next()->toInt(); } else if (*s == QString("Channels")) { QString t; unsigned int i = 0; int j = 0; s = list.next(); while (i < s->length()) { j = s->find(QChar(' '), i, false); if (j == -1) { j = s->length(); } t = s->mid(i, j-i); // Check for duplicates if (m_channels.find(t.toInt()) == m_channels.end()) { m_channels.append(t.toInt()); } i = j + 1; } } else if (*s == QString("LevelLowLimit")) { m_levelLowLimit = list.next()->toInt(); } else if (*s == QString("LevelHighLimit")) { m_levelHighLimit = list.next()->toInt(); } else if (*s == QString("Mode")) { QString t = *list.next(); if (t == modeString(Speed)) { m_mode = Speed; } else if (t == modeString(Level)) { m_mode = Level; } else { m_mode = Submaster; } } else if (*s == QString("Value")) { m_slider->setValue(list.next()->toInt()); } else { // Unknown keyword, ignore *list.next(); } } setLevelRange(m_levelLowLimit, m_levelHighLimit); setBusRange(m_busLowLimit, m_busHighLimit); setGeometry(rect); if (m_mode == Submaster) { assignSubmasters(true); } setMode(m_mode); }
bool Overlay::event(QEvent* event) { if (event->type() == QEvent::ParentChange) reparent(); return QLabel::event(event); }
void MainWindow::changeSetting() { m_toggleDockingAction->setChecked(ScimKdeSettings::dockingToPanelApplet()); toggleDocking(true); //retrieve the m_mode first if(m_mode == StandAlone) { //re-initialize embed if next time toggle to that docking mode m_embedInitialized = false; setName("mainWindow"); reparent(0, Qt::WStyle_Customize | Qt::WX11BypassWM | Qt::WStyle_StaysOnTop, ScimKdeSettings::mainWindow_Position(),false); m_moveHandle->show(); setFrameStyle( QFrame::PopupPanel | QFrame::Raised ); //if margin is 0, the frame can not be drawn correctly, frameWidth() is // sometimes too big (>1 and the main m_toolbar is not so decent), so // just fix it to 1 m_mainWindowLayout->setMargin(1); setBackgroundOrigin(QWidget::WindowOrigin); } else { //change name so that it won't be listed in the composite management page setName("mainWindow_embedded"); setWFlags(Qt::WStyle_Customize); m_moveHandle->hide(); setFrameStyle( QFrame::NoFrame ); m_mainWindowLayout->setMargin(0); setBackgroundOrigin(QWidget::AncestorOrigin); setBackgroundMode(QWidget::X11ParentRelative); } m_autoHideTimeout = ScimKdeSettings::hide_Timeout() * 1000; m_alwaysShow = ScimKdeSettings::always_Show(); m_autoSnap = ScimKdeSettings::auto_Snap(); requestReloadSelf(); if( m_alwaysShow && m_autoHideTimeout > 0 && m_mode == StandAlone) { if(!m_autoHideTimeoutTimer) { m_autoHideTimeoutTimer = new QTimer(this); connect( m_autoHideTimeoutTimer, SIGNAL( timeout() ), this, SLOT( hideToolbar() ) ); } } else { if(m_autoHideTimeoutTimer) m_autoHideTimeoutTimer->deleteLater(); m_autoHideTimeoutTimer = 0; m_toolbar->show(); if(m_mode == StandAlone) m_moveHandle->show(); } m_alwaysShowHandle = ScimKdeSettings::alwaysShowHandle(); m_alwaysShowExtensionHandle = ScimKdeSettings::alwaysShowExtensionHandle(); if(m_mode == PanelEmbedded) { //init m_alwaysShowHandle option support timer if(m_alwaysShowHandle) { if(m_showHandleTimer) m_showHandleTimer->deleteLater(); m_showHandleTimer = 0; } else { if(!m_showHandleTimer) { m_showHandleTimer = new QTimer(this); connect(m_showHandleTimer, SIGNAL(timeout()), this, SLOT(showHandleRequest())); } } //init m_alwaysShowExtensionHandle option support timer if(m_alwaysShowExtensionHandle) { if(m_showExtHandleTimer) m_showExtHandleTimer->deleteLater(); m_showExtHandleTimer = 0; if(m_embeddedAreaSize.isValid()) //only reset m_toolbar size if m_embeddedAreaSize is set before resetToolbarSize(m_embeddedAreaSize); } else { if(!m_showExtHandleTimer) { m_showExtHandleTimer = new QTimer(this); connect(m_showExtHandleTimer, SIGNAL(timeout()), this, SLOT(showExtHandleRequest())); } } initEmbedPanel(); } if(m_mode == StandAlone) { if(m_alwaysShow) { if(m_autoHideTimeoutTimer && !m_logo) { m_logo = new QLabel(this); m_logo->setPixmap(KGlobal::iconLoader()->loadIcon("skim", KIcon::Toolbar)); m_mainWindowLayout->addWidget(m_logo); m_logo->hide(); } QTimer::singleShot(0, this, SLOT(show()));//FIXME } else if(m_panelTurnedOn) QTimer::singleShot(0, this, SLOT(show()));//FIXME if((!m_alwaysShow || !m_autoHideTimeoutTimer) && m_logo) { m_logo->deleteLater(); m_logo = 0; } UPDATE_WINDOW_OPACITY(this); } if(m_mode == StandAlone || (!ScimKdeSettings::force_LeftToRight_In_Kicker() && m_mode == PanelEmbedded)) changeDirection((QBoxLayout::Direction)(ScimKdeSettings::mainWindow_Direction())); else changeDirection(QBoxLayout::LeftToRight); if(m_mode == StandAlone || (!m_alwaysShowExtensionHandle && m_mode == PanelEmbedded)) { resetToolbarSize(); } }
void VCButton::createContents(QPtrList <QString> &list) { QRect rect(30, 30, 30, 30); for (QString* s = list.next(); s != NULL; s = list.next()) { if (*s == QString("Entry")) { s = list.prev(); break; } else if (*s == QString("Name")) { setCaption(*(list.next())); } else if (*s == QString("Parent")) { VCFrame* parent = _app->virtualConsole()->getFrame(list.next()->toInt()); if (parent != NULL) { reparent((QWidget*)parent, 0, QPoint(0, 0), true); } // each Button should set if (parent->buttonBehaviour() == VCFrame::Exclusive) { setExclusive(true); } else { setExclusive(false); } } else if (*s == QString("X")) { rect.setX(list.next()->toInt()); } else if (*s == QString("Y")) { rect.setY(list.next()->toInt()); } else if (*s == QString("Width")) { rect.setWidth(list.next()->toInt()); } else if (*s == QString("Height")) { rect.setHeight(list.next()->toInt()); } else if (*s == QString("Textcolor")) { QColor qc; qc.setRgb(list.next()->toUInt()); setPaletteForegroundColor(qc); } else if (*s == QString("Backgroundcolor")) { QColor qc; qc.setRgb(list.next()->toUInt()); setPaletteBackgroundColor(qc); } else if (*s == QString("Color")) { // Backwards compatibility for button background color QString t = *(list.next()); int i = t.find(QString(",")); int r = t.left(i).toInt(); int j = t.find(QString(","), i + 1); int g = t.mid(i+1, j-i-1).toInt(); int b = t.mid(j+1).toInt(); QColor qc(r, g, b); setPaletteBackgroundColor(qc); } else if (*s == QString("Pixmap")) { QString t; t = *(list.next()); QPixmap pm(t); if (pm.isNull() == false) { setIconText(t); setPaletteBackgroundPixmap(pm); } } else if (*s == QString("Font")) { QFont f = font(); QString q = *(list.next()); f.fromString(q); setFont(f); } else if (*s == QString("Function")) { attachFunction(list.next()->toInt()); } else if (*s == QString("BindKey")) { assert(m_keyBind); QString t = *(list.next()); m_keyBind->setKey(t.toInt()); } else if (*s == QString("BindMod")) { assert(m_keyBind); QString t = *(list.next()); m_keyBind->setMod(t.toInt()); } else if (*s == QString("BindPress")) { assert(m_keyBind); QString t = *(list.next()); m_keyBind->setPressAction((KeyBind::PressAction) t.toInt()); } else if (*s == QString("BindRelease")) { assert(m_keyBind); QString t = *(list.next()); m_keyBind->setReleaseAction((KeyBind::ReleaseAction) t.toInt()); } else { // Unknown keyword, ignore *list.next(); } } setGeometry(rect); }
void QWidget::setWindowState(uint newstate) { in_show_maximized = 1; bool resized = testWFlags( WState_Resized ); uint oldstate = effectiveState(widget_state); widget_state &= ~(WState_Minimized | WState_Maximized | WState_FullScreen); if (newstate & WindowMinimized) widget_state |= WState_Minimized; if (newstate & WindowMaximized) widget_state |= WState_Maximized; if (newstate & WindowFullScreen) widget_state |= WState_FullScreen; uint state = effectiveState(widget_state); bool needShow = FALSE; if (isTopLevel() && state != oldstate) { createTLExtra(); if ( oldstate == 0 ) { //normal topData()->normalGeometry = geometry(); } else if ( oldstate == WState_FullScreen ) { reparent( 0, topData()->savedFlags, QPoint(0,0) ); needShow = isVisible(); } else if ( oldstate == WState_Minimized ) { needShow = TRUE; } if ( state == WState_Minimized ) { //### not ideal... hide(); needShow = FALSE; } else if ( state == WState_FullScreen ) { needShow = needShow || isVisible(); topData()->savedFlags = getWFlags(); reparent( 0, WType_TopLevel | WStyle_Customize | WStyle_NoBorder | // preserve some widget flags (getWFlags() & 0xffff0000), QPoint( 0, 0)); const QRect screen = qApp->desktop()->screenGeometry( qApp->desktop()->screenNumber( this ) ); move( screen.topLeft() ); resize( screen.size() ); if ( !resized ) clearWState( WState_Resized ); raise(); } else if ( state == WState_Maximized ) { #ifndef QT_NO_QWS_MANAGER if ( extra && extra->topextra && extra->topextra->qwsManager ) extra->topextra->qwsManager->maximize(); else #endif setGeometry( qt_maxWindowRect ); if ( !resized ) clearWState( WState_Resized ); } else { //normal QRect r = topData()->normalGeometry; if ( r.width() >= 0 ) { topData()->normalGeometry = QRect(0,0,-1,-1); setGeometry( r ); } } } in_show_maximized = 0; if (needShow) show(); if (newstate & WindowActive) setActiveWindow(); QEvent e(QEvent::WindowStateChange); QApplication::sendEvent(this, &e); }
void Viewport::init(FXComposite* p, FXGLVisual *vis, const char* title, bool bottomToolbar) { PM = PatchMgr::getInstance(); FXVerticalFrame *vf = new FXVerticalFrame(p, LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_SUNKEN); vf->setPadLeft(0); vf->setPadTop(0); vf->setPadRight(0); vf->setPadBottom(0); vf->setHSpacing(0); vf->setVSpacing(0); if (bottomToolbar) reparent(vf); sideToolbar = new FXHorizontalFrame(vf,LAYOUT_SIDE_TOP|LAYOUT_FILL_X,0,0,0,0, 0,0,0,0, 0,0); if (!bottomToolbar) reparent(vf); new FXLabel(sideToolbar,title,NULL,LAYOUT_LEFT); butCPoints = new FXToggleButton(sideToolbar,"\tPunti di controllo\tMostra o nasconde tutti i punti di controllo.", NULL, new FXGIFIcon(getApp(),IconCpoints_off), new FXGIFIcon(getApp(),IconCpoints), this, ID_CONTROL_POINTS ,FRAME_RAISED|LAYOUT_TOP|LAYOUT_RIGHT|TOGGLEBUTTON_TOOLBAR); butCPolygon = new FXToggleButton(sideToolbar,"\tPoligono di controllo\tMostra o nasconde tutti i poligoni di controllo.", NULL, new FXGIFIcon(getApp(),IconCpoly_off),new FXGIFIcon(getApp(),IconCpoly), this, ID_CONTROL_POLYGON,FRAME_RAISED|LAYOUT_TOP|LAYOUT_RIGHT|TOGGLEBUTTON_TOOLBAR); butPatch = new FXToggleButton(sideToolbar,"\tSuperficie Patch\tMostra o nasconde la superficie di tutte le patch.", NULL, new FXGIFIcon(getApp(),IconDpatch_off), new FXGIFIcon(getApp(),IconDpatch), this,ID_PATCH,FRAME_RAISED|LAYOUT_TOP|LAYOUT_RIGHT|TOGGLEBUTTON_TOOLBAR); TOOLBAR_SEPARATOR(sideToolbar); butSnapToGrid = new FXToggleButton(sideToolbar,"\tBlocca alla grigla\tSe attivato permette di muovere i punti solo lungo la griglia.", NULL, new FXGIFIcon(getApp(),IconSnap_off), new FXGIFIcon(getApp(),IconSnap), this,ID_SNAP,FRAME_RAISED|LAYOUT_TOP|LAYOUT_RIGHT|TOGGLEBUTTON_TOOLBAR); butCullFace = new FXToggleButton(sideToolbar,"\tCull faces\tSe attivato rimuove le facce posteriori.", NULL, new FXGIFIcon(getApp(),IconCull_off), new FXGIFIcon(getApp(),IconCull), this, ID_CULL, FRAME_RAISED|LAYOUT_TOP|LAYOUT_RIGHT|TOGGLEBUTTON_TOOLBAR); butGridMinus = new FXToggleButton(sideToolbar,"\tDiminuisci griglia\tDiminuisce la tassellazione della griglia.", NULL, new FXGIFIcon(getApp(),IconMinus), new FXGIFIcon(getApp(),IconMinus), this, ID_GRID_MINUS, FRAME_RAISED|LAYOUT_TOP|LAYOUT_RIGHT|TOGGLEBUTTON_TOOLBAR); butGridPlus = new FXToggleButton(sideToolbar,"\tAumenta griglia\tAumenta la tassellazione della griglia.", NULL, new FXGIFIcon(getApp(),IconPlus), new FXGIFIcon(getApp(),IconPlus), this, ID_GRID_PLUS, FRAME_RAISED|LAYOUT_TOP|LAYOUT_RIGHT|TOGGLEBUTTON_TOOLBAR); butSolid = new FXToggleButton(sideToolbar,"\tMostra la patch piena o in wireframe\tMostra la patch piena o in wireframe.", NULL, new FXGIFIcon(getApp(),IconSolid_off), new FXGIFIcon(getApp(),IconSolid), this, ID_SOLID, FRAME_RAISED|LAYOUT_TOP|LAYOUT_RIGHT|TOGGLEBUTTON_TOOLBAR); butTexture = new FXToggleButton(sideToolbar,"\tMostra o nasconde le textures\tMostra o nasconde le textures.", NULL, new FXGIFIcon(getApp(),IconTex_off), new FXGIFIcon(getApp(),IconTex), this, ID_TEXTURE, FRAME_RAISED|LAYOUT_TOP|LAYOUT_RIGHT|TOGGLEBUTTON_TOOLBAR); butShowGrid = new FXToggleButton(sideToolbar,"\tMostra o nasconde la griglia\tMostra o nasconde la griglia.", NULL, new FXGIFIcon(getApp(),IconGrid_off), new FXGIFIcon(getApp(),IconGrid), this, ID_SHOW_GRID, FRAME_RAISED|LAYOUT_TOP|LAYOUT_RIGHT|TOGGLEBUTTON_TOOLBAR); TOOLBAR_SEPARATOR(sideToolbar); butCameraTrackball = new FXToggleButton(sideToolbar,"\tTrackball\tControllo telecamera con trackball.", "\tTelecamera\tControllo telecamera libero.", new FXGIFIcon(getApp(),IconTrackball),new FXGIFIcon(getApp(),IconCam), this, ID_CAMERA_TRACKBALL,FRAME_RAISED|LAYOUT_TOP|LAYOUT_RIGHT|TOGGLEBUTTON_TOOLBAR); butCullFace->hide(); butShowGrid->hide(); butSolid->hide(); butTexture->hide(); butCameraTrackball->hide(); dragCursor = getApp()->getDefaultCursor(DEF_CROSSHAIR_CURSOR); Operation = OP_IDLE; Tool = TOOL_SELECTOR; reproject = true; LeftBtn = false; RightBtn = false; zoom = 50.0f; xpos = 0.0f; ypos = 0.0f; gridSize = 1.0f; }