void IppReportDlg::slotUser1() { KPrinter printer; printer.setFullPage(true); printer.setDocName(caption()); if (printer.setup(this)) { TQPainter painter(&printer); TQPaintDeviceMetrics metrics(&printer); // report is printed using TQSimpleRichText TQSimpleRichText rich(m_edit->text(), font()); rich.setWidth(&painter, metrics.width()); int margin = (int)(1.5 / 2.54 * metrics.logicalDpiY()); // 1.5 cm TQRect r(margin, margin, metrics.width()-2*margin, metrics.height()-2*margin); int hh = rich.height(), page(1); while (1) { rich.draw(&painter, margin, margin, r, colorGroup()); TQString s = caption() + ": " + TQString::number(page); TQRect br = painter.fontMetrics().boundingRect(s); painter.drawText(r.right()-br.width()-5, r.top()-br.height()-4, br.width()+5, br.height()+4, Qt::AlignRight|Qt::AlignTop, s); r.moveBy(0, r.height()-10); painter.translate(0, -(r.height()-10)); if (r.top() < hh) { printer.newPage(); page++; } else break; } } }
ObjKsTheme::ObjKsTheme( const TQString& theme ) :mActiveTheme (theme), mThemeDir("/"), mThemeConfig (0L), mThemePrefix( "Themes/" ), d(0) { // Get Xinerama config. TDEConfig *config = kapp->config(); config->setGroup( "Xinerama" ); TQDesktopWidget *desktop = kapp->desktop(); mXineramaScreen = config->readNumEntry("KSplashScreen", desktop->primaryScreen()); // For Xinerama, let's put the mouse on the first head. Otherwise it could appear anywhere! if (desktop->isVirtualDesktop() && mXineramaScreen != -2) { TQRect rect = desktop->screenGeometry( mXineramaScreen ); if (!rect.contains(TQCursor::pos())) TQCursor::setPos(rect.center()); } // Does the active theme exist? if( !loadThemeRc( mActiveTheme, false ) ) if( !loadLocalConfig( mActiveTheme, false ) ) if( !loadThemeRc( "Default", false ) ) loadLocalConfig( "Default", true ); //force: we need some defaults loadCmdLineArgs(TDECmdLineArgs::parsedArgs()); mThemePrefix += ( mActiveTheme + "/" ); }
void Manager::paintEvent(TQPaintEvent *e) { TQPainter p(widget()); TQRect r(e->rect()); bool intersectsLeft = r.intersects(TQRect(0, 0, 1, height())); bool intersectsRight = r.intersects(TQRect(width() - 1, 0, width(), height())); if (intersectsLeft || intersectsRight) { p.setPen(TQt::black); if (intersectsLeft) p.drawLine(0, r.top(), 0, r.bottom()); if (intersectsRight) p.drawLine(width() - 1, r.top(), width() - 1, r.bottom()); } Static * s = Static::instance(); bool active = isActive(); // Title bar. TQRect tr = titleSpacer_->tqgeometry(); bitBlt(widget(), tr.topLeft(), &titleBuf_); // Resize bar. if (isResizable()) { int rbt = height() - Static::instance()->resizeHeight(); // Resize bar top bitBlt(widget(), 0, rbt, &(s->resize(active))); bitBlt(widget(), 30, rbt, &(s->resizeMidLeft(active))); p.drawTiledPixmap(32, rbt, width() - 34, Static::instance()->resizeHeight(), s->resizeMidMid(active)); bitBlt(widget(), width() - 32, rbt, &(s->resizeMidRight(active))); bitBlt(widget(), width() - 30, rbt, &(s->resize(active))); } else p.drawLine(1, height() - 1, width() - 2, height() - 1); }
TQWidget *KWMapEditor::beginEdit(int row, int col, bool replace) { //kdDebug(2300) << "EDIT COLUMN " << col << endl; if (col != 2) { return TQTable::beginEdit(row, col, replace); } TQRect geo = cellGeometry(row, col); TQTextEdit *e = new InlineEditor(this, row, col); e->setText(text(row, col)); e->move(mapToGlobal(geo.topLeft())); e->resize(geo.width() * 2, geo.height() * 3); e->show(); return e; }
bool NextClient::drawbound(const TQRect& geom, bool /* clear */) { TQPainter p(workspaceWidget()); p.setPen(TQPen(TQt::white, 3)); p.setRasterOp(TQt::XorROP); p.drawRect(geom); int leftMargin = geom.left() + 2; p.fillRect(leftMargin, geom.top() + titleHeight - 1, geom.width() - 4, 3, TQt::white); if (mustDrawHandle()) { p.fillRect(leftMargin, geom.bottom() - handleSize - 1, geom.width() - 4, 3, TQt::white); } return true; }
void NextClient::menuButtonPressed() { // Probably don't need this null check, but we might as well. if (button[MENU_IDX]) { TQRect menuRect = button[MENU_IDX]->rect(); TQPoint menuTop = button[MENU_IDX]->mapToGlobal(menuRect.topLeft()); TQPoint menuBottom = button[MENU_IDX]->mapToGlobal(menuRect.bottomRight()); menuTop += TQPoint(1, 1); menuBottom += TQPoint(1, 1); KDecorationFactory* f = factory(); showWindowMenu(TQRect(menuTop, menuBottom)); if( !f->exists( this )) // 'this' was deleted return; button[MENU_IDX]->setDown(false); } }
void NextClient::resizeEvent(TQResizeEvent *) { if (widget()->isVisible()) { // TODO ? update border area only? widget()->update(); #if 0 widget()->update(titlebar->tqgeometry()); TQPainter p(widget()); TQRect t = titlebar->tqgeometry(); t.setTop( 0 ); TQRegion r = widget()->rect(); r = r.subtract( t ); p.setClipRegion( r ); p.eraseRect(widget()->rect()); #endif } }
void Manager::updateTitleBuffer() { bool active = isActive(); Static * s = Static::instance(); TQRect tr = titleSpacer_->tqgeometry(); if (tr.width() == 0 || tr.height() == 0) titleBuf_.resize(8, 8); else titleBuf_.resize(tr.size()); TQPainter p(&titleBuf_); p.drawPixmap(0, 0, s->titleTextLeft(active)); p.drawTiledPixmap(3, 0, tr.width() - 6, Static::instance()->titleHeight(), s->titleTextMid(active)); p.setPen(options()->color(KDecorationOptions::ColorFont, active)); p.setFont(options()->font(active)); p.drawText(4, 2, tr.width() - 8, Static::instance()->titleHeight() - 4, AlignCenter, caption()); p.drawPixmap(tr.width() - 3, 0, s->titleTextRight(active)); }
void KFileIVIDesktop::calcRect( const TQString& _text ) { TDEIconViewItem::calcRect( _text ); if ( !iconView() || !m_shadow || !wordWrap() || !( static_cast<KDesktopShadowSettings *> ( m_shadow->shadowSettings() ) )->isEnabled() ) return; int spread = shadowThickness(); TQRect itemTextRect = textRect(); TQRect itemRect = rect(); itemTextRect.setBottom( itemTextRect.bottom() + spread ); itemTextRect.setRight( itemTextRect.right() + spread ); itemRect.setBottom( itemRect.bottom() + spread ); itemRect.setRight( itemRect.right() + spread ); setTextRect( itemTextRect ); setItemRect( itemRect ); }
void KJotsEdit::print(TQString title) { KPrinter printer; printer.setDocName(title); printer.setFullPage(false); printer.setCreator("KJots"); if (printer.setup(this)) { TQFont printFont = font(); TQPainter painter( &printer ); TQPaintDeviceMetrics metrics( &printer ); int y = 0; int maxWidth = metrics.width(); int maxHeight = metrics.height(); TQString currentParagraph; for (int paragraphCount = 0; paragraphCount < paragraphs(); ++paragraphCount ) { currentParagraph = text(paragraphCount); TQRect r = painter.boundingRect(0, y, maxWidth, maxHeight, TQPainter::ExpandTabs | TQPainter::WordBreak, currentParagraph); if ((y + r.height()) > maxHeight) { printer.newPage(); y = 0; } painter.drawText(0, y, maxWidth, maxHeight - y, TQPainter::ExpandTabs | TQPainter::WordBreak, currentParagraph); y += r.height(); } painter.end(); } }
void KdmRect::drawContents( TQPainter *p, const TQRect &r ) { // choose the correct rect class RectStruct::RectClass *rClass = &rect.normal; if (state == Sactive && rect.active.present) { rClass = &rect.active; } if (state == Sprelight && rect.prelight.present) { rClass = &rect.prelight; } if (rClass->alpha <= 0 || !rClass->color.isValid()) { return; } if (rClass->alpha == 1) { p->fillRect( area, TQBrush( rClass->color ) ); } else { // if (!argb_visual_available) { // Software blend only (no compositing support) TQRect backRect = r; backRect.moveBy( area.x(), area.y() ); TQPixmap backPixmap( backRect.size() ); bitBlt( &backPixmap, TQPoint( 0, 0 ), p->device(), backRect ); TQImage backImage = backPixmap.convertToImage(); KImageEffect::blend( rClass->color, backImage, rClass->alpha ); p->drawImage( backRect.x(), backRect.y(), backImage ); // area.moveBy(1,1); // } // else { // // We have compositing support! // } } }
void EvaLVToolTip::maybeTip(const TQPoint &p) { EvaListViewItem *item = dynamic_cast<EvaListViewItem *>(m_lv->itemAt(p)); if(!item) return; int section = m_lv->header()->sectionAt(p.x()); TQRect itemRect = m_lv->itemRect(item); TQRect headerRect = m_lv->header()->sectionRect(section); TQRect destRect(headerRect.left(), itemRect.top(), headerRect.width(), itemRect.height()); tip(destRect, item->tip()); }
void KJanusWidget::addPageWidget( TQFrame *page, const TQStringList &items, const TQString &header,const TQPixmap &pixmap ) { connect(page, TQT_SIGNAL(destroyed(TQObject*)), TQT_SLOT(pageGone(TQObject*))); if( mFace == Tabbed ) { mTabControl->addTab (page, items.last()); d->mIntToPage[d->mNextPageIndex] = static_cast<TQWidget*>(page); d->mPageToInt[static_cast<TQWidget*>(page)] = d->mNextPageIndex; d->mNextPageIndex++; } else if( mFace == TreeList || mFace == IconList ) { d->mIntToPage[d->mNextPageIndex] = static_cast<TQWidget*>(page); d->mPageToInt[static_cast<TQWidget*>(page)] = d->mNextPageIndex; mPageStack->addWidget( page, 0 ); if (items.isEmpty()) { kdDebug() << "Invalid TQStringList, with zero items" << endl; return; } if( mFace == TreeList ) { InsertTreeListItem(items, pixmap, page); } else // mFace == IconList { TQString itemName = items.last(); IconListItem *item = new IconListItem( mIconList, pixmap, itemName ); mIconListToPageStack.insert(item, page); mIconList->invalidateHeight(); mIconList->invalidateWidth(); if (mIconList->isVisible()) mIconList->updateWidth(); } // // Make sure the title label is sufficiently wide // TQString lastName = items.last(); const TQString &title = (!header.isNull() ? header : lastName); TQRect r = mTitleLabel->fontMetrics().boundingRect( title ); if( mTitleLabel->minimumWidth() < r.width() ) { mTitleLabel->setMinimumWidth( r.width() ); } d->mIntToTitle[d->mNextPageIndex] = title; if( d->mIntToTitle.count() == 1 ) { showPage(0); } d->mNextPageIndex++; } else { kdDebug() << "KJanusWidget::addPageWidget: can only add a page in Tabbed, TreeList or IconList modes" << endl; } }
void MenuManager::kmenuAccelActivated() { if (m_kmenu->isVisible()) { m_kmenu->hide(); return; } m_kmenu->initialize(); if (m_kbuttons.isEmpty()) { // no button to use, make it behave like a desktop menu TQPoint p; // Popup the K-menu at the center of the screen. TQDesktopWidget* desktop = TDEApplication::desktop(); TQRect r; if (desktop->numScreens() < 2) r = desktop->geometry(); else r = desktop->screenGeometry(desktop->screenNumber(TQCursor::pos())); // kMenu->rect() is not valid before showing, use sizeHint() p = r.center() - TQRect( TQPoint( 0, 0 ), m_kmenu->sizeHint()).center(); m_kmenu->popup(p); // when the cursor is in the area where the menu pops up, // the item under the cursor gets selected. The single shot // avoids this from happening by allowing the item to be selected // when the event loop is enterred, and then resetting it. TQTimer::singleShot(0, this, TQT_SLOT(slotSetKMenuItemActive())); } else { // We need the kmenu's size to place it at the right position. // We cannot rely on the popup menu's current size(), if it wasn't // shown before, so we resize it here according to its sizeHint(). const TQSize size = m_kmenu->sizeHint(); m_kmenu->resize(size.width(),size.height()); PanelPopupButton* button = findKButtonFor(m_kmenu->widget()); // let's unhide the panel while we're at it. traverse the widget // hierarchy until we find the panel, if any TQObject* menuParent = button->parent(); while (menuParent) { ExtensionContainer* ext = dynamic_cast<ExtensionContainer*>(menuParent); if (ext) { ext->unhideIfHidden(); // make sure it's unhidden before we use it to figure out // where to popup tqApp->processEvents(); break; } menuParent = menuParent->parent(); } button->showMenu(); } }
void NextClient::paintEvent( TQPaintEvent* ) { TQPainter p(widget()); // Draw black frame TQRect fr = widget()->rect(); p.setPen(TQt::black); p.drawRect(fr); // Draw title bar TQRect t = titlebar->tqgeometry(); t.setTop(1); p.drawTiledPixmap(t.x()+1, t.y()+1, t.width()-2, t.height()-2, isActive() ? *aTitlePix : *iTitlePix); qDrawShadePanel(&p, t.x(), t.y(), t.width(), t.height()-1, options()->tqcolorGroup(KDecoration::ColorTitleBar, isActive())); p.drawLine(t.x(), t.bottom(), t.right(), t.bottom()); #if 0 // Why setting up a clipping region if it is not used? (setClipping(false)) TQRegion r = fr; r = r.subtract( t ); p.setClipRegion( r ); p.setClipping(false); #endif t.setTop( 1 ); t.setHeight(t.height()-2); t.setLeft( t.left() + 4 ); t.setRight( t.right() - 2 ); p.setPen(options()->color(KDecoration::ColorFont, isActive())); p.setFont(options()->font(isActive())); p.drawText( t, AlignCenter | AlignVCenter, caption() ); // Draw resize handle if (mustDrawHandle()) { int corner = 16 + 3*handleSize/2; qDrawShadePanel(&p, fr.x() + 1, fr.bottom() - handleSize, corner-1, handleSize, options()->tqcolorGroup(KDecoration::ColorHandle, isActive()), false); p.drawTiledPixmap(fr.x() + 2, fr.bottom() - handleSize + 1, corner - 3, handleSize - 2, isActive() ? *aHandlePix : *iHandlePix); qDrawShadePanel(&p, fr.x() + corner, fr.bottom() - handleSize, fr.width() - 2*corner, handleSize, options()->tqcolorGroup(KDecoration::ColorFrame, isActive()), false); p.drawTiledPixmap(fr.x() + corner + 1, fr.bottom() - handleSize + 1, fr.width() - 2*corner - 2, handleSize - 2, isActive() ? *aFramePix : *iFramePix); qDrawShadePanel(&p, fr.right() - corner + 1, fr.bottom() - handleSize, corner - 1, handleSize, options()->tqcolorGroup(KDecoration::ColorHandle, isActive()), false); p.drawTiledPixmap(fr.right() - corner + 2, fr.bottom() - handleSize + 1, corner - 3, handleSize - 2, isActive() ? *aHandlePix : *iHandlePix); } }
/* * Constructs a CustomFaceManagerUI as a child of 'parent', with the * name 'name' and widget flags set to 'f'. */ CustomFaceManagerUI::CustomFaceManagerUI( TQWidget* parent, const char* name, WFlags fl ) : TQWidget( parent, name, fl ) { TQImage img; img.loadFromData( image0_data, sizeof( image0_data ), "PNG" ); image0 = img; img.loadFromData( image1_data, sizeof( image1_data ), "PNG" ); image1 = img; img.loadFromData( image2_data, sizeof( image2_data ), "PNG" ); image2 = img; if ( !name ) setName( "CustomFaceManagerUI" ); CustomFaceManagerUILayout = new TQGridLayout( this, 1, 1, 3, 0, "CustomFaceManagerUILayout"); layout9 = new TQVBoxLayout( 0, 0, 6, "layout9"); frame7 = new TQFrame( this, "frame7" ); frame7->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)1, (TQSizePolicy::SizeType)1, 0, 0, frame7->sizePolicy().hasHeightForWidth() ) ); frame7->setFrameShape( TQFrame::TabWidgetPanel ); frame7->setFrameShadow( TQFrame::Raised ); frame7Layout = new TQGridLayout( frame7, 1, 1, 2, 0, "frame7Layout"); layout1 = new TQHBoxLayout( 0, 0, 6, "layout1"); tbtnImport = new TQToolButton( frame7, "tbtnImport" ); tbtnImport->setAutoRaise( TRUE ); layout1->addWidget( tbtnImport ); tbtnExport = new TQToolButton( frame7, "tbtnExport" ); tbtnExport->setAutoRaise( TRUE ); layout1->addWidget( tbtnExport ); tbtnAddGroup = new TQToolButton( frame7, "tbtnAddGroup" ); tbtnAddGroup->setIconSet( TQIconSet( image0 ) ); tbtnAddGroup->setUsesTextLabel( TRUE ); tbtnAddGroup->setAutoRaise( TRUE ); tbtnAddGroup->setTextPosition( TQToolButton::BesideIcon ); layout1->addWidget( tbtnAddGroup ); tbtnEditGroup = new TQToolButton( frame7, "tbtnEditGroup" ); tbtnEditGroup->setIconSet( TQIconSet( image1 ) ); tbtnEditGroup->setUsesTextLabel( TRUE ); tbtnEditGroup->setAutoRaise( TRUE ); tbtnEditGroup->setTextPosition( TQToolButton::BesideIcon ); layout1->addWidget( tbtnEditGroup ); tbtnRemoveGroup = new TQToolButton( frame7, "tbtnRemoveGroup" ); tbtnRemoveGroup->setIconSet( TQIconSet( image2 ) ); tbtnRemoveGroup->setUsesBigPixmap( TRUE ); tbtnRemoveGroup->setUsesTextLabel( TRUE ); tbtnRemoveGroup->setAutoRaise( TRUE ); tbtnRemoveGroup->setTextPosition( TQToolButton::BesideIcon ); layout1->addWidget( tbtnRemoveGroup ); frame7Layout->addLayout( layout1, 0, 0 ); layout9->addWidget( frame7 ); layout7 = new TQHBoxLayout( 0, 0, 6, "layout7"); frame6 = new TQFrame( this, "frame6" ); frame6->setPaletteForegroundColor( TQColor( 0, 124, 206 ) ); frame6->setFrameShape( TQFrame::Box ); frame6->setFrameShadow( TQFrame::Plain ); frame6Layout = new TQGridLayout( frame6, 1, 1, 1, 0, "frame6Layout"); lvGroups = new TQListView( frame6, "lvGroups" ); lvGroups->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)5, (TQSizePolicy::SizeType)7, 0, 0, lvGroups->sizePolicy().hasHeightForWidth() ) ); lvGroups->setMinimumSize( TQSize( 100, 0 ) ); lvGroups->setMaximumSize( TQSize( 250, 32767 ) ); lvGroups->setFrameShape( TQListView::NoFrame ); lvGroups->setFrameShadow( TQListView::Plain ); lvGroups->setLineWidth( 1 ); lvGroups->setHScrollBarMode( TQListView::AlwaysOff ); lvGroups->setSorting( -1 ); // don't sort frame6Layout->addWidget( lvGroups, 0, 0 ); layout7->addWidget( frame6 ); frmMain = new TQFrame( this, "frmMain" ); frmMain->setPaletteForegroundColor( TQColor( 0, 124, 206 ) ); frmMain->setPaletteBackgroundColor( TQColor( 255, 255, 255 ) ); frmMain->setFrameShape( TQFrame::Box ); frmMain->setFrameShadow( TQFrame::Plain ); frmMainLayout = new TQGridLayout( frmMain, 1, 1, 11, 6, "frmMainLayout"); layout6 = new TQHBoxLayout( 0, 0, 6, "layout6"); tblFaceList = new TQTable( frmMain, "tblFaceList" ); tblFaceList->setNumCols( tblFaceList->numCols() + 1 ); tblFaceList->horizontalHeader()->setLabel( tblFaceList->numCols() - 1, i18n("No." ) ); tblFaceList->setNumCols( tblFaceList->numCols() + 1 ); tblFaceList->horizontalHeader()->setLabel( tblFaceList->numCols() - 1, i18n("Smiley" ) ); tblFaceList->setNumCols( tblFaceList->numCols() + 1 ); tblFaceList->horizontalHeader()->setLabel( tblFaceList->numCols() - 1, i18n("Shortcut" ) ); tblFaceList->setFrameShape( TQTable::GroupBoxPanel ); tblFaceList->setFrameShadow( TQTable::Plain ); tblFaceList->setHScrollBarMode( TQTable::AlwaysOff ); tblFaceList->setNumRows( 0 ); tblFaceList->setNumCols( 3 ); tblFaceList->setSelectionMode( TQTable::MultiRow ); tblFaceList->setFocusStyle( TQTable::FollowStyle ); layout6->addWidget( tblFaceList ); layout5 = new TQVBoxLayout( 0, 0, 6, "layout5"); btnAdd = new TQPushButton( frmMain, "btnAdd" ); layout5->addWidget( btnAdd ); btnRemove = new TQPushButton( frmMain, "btnRemove" ); layout5->addWidget( btnRemove ); btnEdit = new TQPushButton( frmMain, "btnEdit" ); layout5->addWidget( btnEdit ); btnUp = new TQPushButton( frmMain, "btnUp" ); layout5->addWidget( btnUp ); btnDown = new TQPushButton( frmMain, "btnDown" ); layout5->addWidget( btnDown ); btnMoveTo = new TQPushButton( frmMain, "btnMoveTo" ); layout5->addWidget( btnMoveTo ); spacer1 = new TQSpacerItem( 20, 20, TQSizePolicy::Minimum, TQSizePolicy::Expanding ); layout5->addItem( spacer1 ); lblPreview = new TQLabel( frmMain, "lblPreview" ); lblPreview->setSizePolicy( TQSizePolicy( (TQSizePolicy::SizeType)0, (TQSizePolicy::SizeType)0, 0, 0, lblPreview->sizePolicy().hasHeightForWidth() ) ); lblPreview->setMinimumSize( TQSize( 100, 85 ) ); lblPreview->setMaximumSize( TQSize( 100, 85 ) ); lblPreview->setPaletteForegroundColor( TQColor( 0, 124, 206 ) ); lblPreview->setFrameShape( TQLabel::Box ); layout5->addWidget( lblPreview ); layout6->addLayout( layout5 ); frmMainLayout->addLayout( layout6, 0, 0 ); layout7->addWidget( frmMain ); layout9->addLayout( layout7 ); layout8 = new TQHBoxLayout( 0, 0, 6, "layout8"); spacer2 = new TQSpacerItem( 91, 20, TQSizePolicy::Expanding, TQSizePolicy::Minimum ); layout8->addItem( spacer2 ); btnOK = new TQPushButton( this, "btnOK" ); layout8->addWidget( btnOK ); btnCancel = new TQPushButton( this, "btnCancel" ); layout8->addWidget( btnCancel ); layout9->addLayout( layout8 ); CustomFaceManagerUILayout->addLayout( layout9, 0, 0 ); languageChange(); resize( TQSize(521, 382).expandedTo(minimumSizeHint()) ); clearWState( WState_Polished ); TQRect scr = TDEApplication::desktop()->screenGeometry(); move(scr.center()-rect().center()); }
bool Manager::animateMinimize(bool iconify) { int style = Static::instance()->animationStyle(); switch (style) { case 1: { // Double twisting double back, with pike ;) if (!iconify) // No animation for restore. return true; // Go away quick. helperShowHide(false); tqApp->syncX(); TQRect r = iconGeometry(); if (!r.isValid()) return true; // Algorithm taken from Window Maker (http://www.windowmaker.org) int sx = geometry().x(); int sy = geometry().y(); int sw = width(); int sh = height(); int dx = r.x(); int dy = r.y(); int dw = r.width(); int dh = r.height(); double steps = 12; double xstep = double((dx-sx)/steps); double ystep = double((dy-sy)/steps); double wstep = double((dw-sw)/steps); double hstep = double((dh-sh)/steps); double cx = sx; double cy = sy; double cw = sw; double ch = sh; double finalAngle = 3.14159265358979323846; double delta = finalAngle / steps; TQPainter p(workspaceWidget()); p.setRasterOp(TQt::NotROP); for (double angle = 0; ; angle += delta) { if (angle > finalAngle) angle = finalAngle; double dx = (cw / 10) - ((cw / 5) * sin(angle)); double dch = (ch / 2) * cos(angle); double midy = cy + (ch / 2); TQPoint p1(int(cx + dx), int(midy - dch)); TQPoint p2(int(cx + cw - dx), p1.y()); TQPoint p3(int(cx + dw + dx), int(midy + dch)); TQPoint p4(int(cx - dx), p3.y()); grabXServer(); p.drawLine(p1, p2); p.drawLine(p2, p3); p.drawLine(p3, p4); p.drawLine(p4, p1); p.flush(); usleep(500); p.drawLine(p1, p2); p.drawLine(p2, p3); p.drawLine(p3, p4); p.drawLine(p4, p1); ungrabXServer(); cx += xstep; cy += ystep; cw += wstep; ch += hstep; if (angle >= finalAngle) break; } } break; case 2: { // KVirc style ? Maybe. For qwertz. if (!iconify) // No animation for restore. return true; // Go away quick. helperShowHide(false); tqApp->syncX(); int stepCount = 12; TQRect r(geometry()); int dx = r.width() / (stepCount * 2); int dy = r.height() / (stepCount * 2); TQPainter p(workspaceWidget()); p.setRasterOp(TQt::NotROP); for (int step = 0; step < stepCount; step++) { r.moveBy(dx, dy); r.setWidth(r.width() - 2 * dx); r.setHeight(r.height() - 2 * dy); grabXServer(); p.drawRect(r); p.flush(); usleep(200); p.drawRect(r); ungrabXServer(); } } break; default: { TQRect icongeom = iconGeometry(); if (!icongeom.isValid()) return true; TQRect wingeom = geometry(); TQPainter p(workspaceWidget()); p.setRasterOp(TQt::NotROP); #if 0 if (iconify) p.setClipRegion(TQRegion(workspaceWidget()->rect()) - wingeom); #endif grabXServer(); p.drawLine(wingeom.bottomRight(), icongeom.bottomRight()); p.drawLine(wingeom.bottomLeft(), icongeom.bottomLeft()); p.drawLine(wingeom.topLeft(), icongeom.topLeft()); p.drawLine(wingeom.topRight(), icongeom.topRight()); p.flush(); tqApp->syncX(); usleep(30000); p.drawLine(wingeom.bottomRight(), icongeom.bottomRight()); p.drawLine(wingeom.bottomLeft(), icongeom.bottomLeft()); p.drawLine(wingeom.topLeft(), icongeom.topLeft()); p.drawLine(wingeom.topRight(), icongeom.topRight()); ungrabXServer(); } break; } return true; }
void ExtensionManager::reduceArea(TQRect &area, const ExtensionContainer *extension) const { if (!extension || extension->hideMode() == ExtensionContainer::AutomaticHide || !extension->reserveStrut()) { return; } TQRect geom = extension->initialGeometry(extension->position(), extension->alignment(), extension->xineramaScreen()); // reduce given area (TQRect) to the space not covered by the given extension // As simplification: the length of the extension is not taken into account // which means that even a small extension e.g. on the left side of the desktop // will remove the available area with its with switch (extension->position()) { case KPanelExtension::Left: { area.setLeft(TQMAX(area.left(), geom.right())); break; } case KPanelExtension::Right: { area.setRight(TQMIN(area.right(), geom.left())); break; } case KPanelExtension::Top: { area.setTop(TQMAX(area.top(), geom.bottom())); break; } case KPanelExtension::Bottom: { area.setBottom(TQMIN(area.bottom(), geom.top())); break; } default: ; // ignore KPanelExtension::Floating ... at least for now } }
void KFileIVIDesktop::drawShadowedText( TQPainter *p, const TQColorGroup &cg ) { bool drawRoundedRect = TDEGlobalSettings::iconUseRoundedRect(); int textX; if (drawRoundedRect == true) textX = textRect( FALSE ).x() + 4; else textX = textRect( FALSE ).x() + 2; int textY = textRect( FALSE ).y(); int align = ((TDEIconView *) iconView())->itemTextPos() == TQIconView::Bottom ? AlignHCenter : AlignAuto; // FIXME // Work around incorrect shadow position detailed in Bug 1807 bool rebuild = true; // shouldUpdateShadow(isSelected()); KDesktopShadowSettings *settings = (KDesktopShadowSettings *) (m_shadow->shadowSettings()); unsigned long uid = settings->UID(); p->setFont(iconView()->font()); paintFontUpdate(p); TQColor shadow; TQColor text; int spread = shadowThickness(); if ( isSelected() && settings->selectionType() != KShadowSettings::InverseVideoOnSelection ) { text = cg.highlightedText(); TQRect rect = textRect( false ); rect.setRight( rect.right() - spread ); rect.setBottom( rect.bottom() - spread + 1 ); if (drawRoundedRect == true) { p->setBrush( TQBrush( cg.highlight() ) ); p->setPen( TQPen( cg.highlight() ) ); p->drawRoundRect( rect, 1000 / rect.width(), 1000 / rect.height() ); } else { p->fillRect( textRect( false ), cg.highlight() ); } } else { // use shadow if ( isSelected() ) { // inverse text and shadow colors shadow = settings->textColor(); text = settings->bgColor(); if ( rebuild ) { setSelectedImage( buildShadow( p, align, shadow ) ); _selectedUID = uid; } } else { text = settings->textColor(); shadow = ( settings->bgColor().isValid() ) ? settings->bgColor() : ( tqGray( text.rgb() ) > 127 ) ? black : white; if (rebuild) { setNormalImage(buildShadow(p, align, shadow)); _normalUID = uid; } } // draw the shadow int shadowX = textX - spread + settings->offsetX(); int shadowY = textY - spread + settings->offsetY(); p->drawImage(shadowX, shadowY, (isSelected()) ? *selectedImage() : *normalImage(), 0, 0, -1, -1, DITHER_FLAGS); } // draw the text p->setPen(text); wordWrap()->drawText( p, textX, textY, align | KWordWrap::Truncate ); }