25 #include "kdecoration.h"
28 #include <tqapplication.h>
29 #include <tdeglobal.h>
31 #if defined Q_WS_X11 && ! defined K_WS_QTONLY
36 #include "kdecoration_p.h"
37 #include "kdecorationfactory.h"
46 factory->addDecoration(
this );
51 factory()->removeDecoration(
this );
70 w->setMouseTracking(
true );
76 return bridge_->initialParentWidget();
81 return bridge_->initialWFlags();
86 return bridge_->isActive();
91 return bridge_->isCloseable();
96 return bridge_->isMaximizable();
101 return bridge_->maximizeMode();
106 return bridge_->isMinimizable();
111 return bridge_->providesContextHelp();
116 return bridge_->desktop();
121 return bridge_->isModal();
126 return bridge_->isShadeable();
131 return bridge_->isShade();
136 return bridge_->isSetShade();
141 return bridge_->keepAbove();
146 return bridge_->keepBelow();
151 return bridge_->isMovable();
156 return bridge_->isResizable();
161 return bridge_->windowType( supported_types );
166 return bridge_->icon();
171 return bridge_->caption();
176 return bridge_->processMousePressEvent( e );
181 bridge_->showWindowMenu( pos );
186 bridge_->showWindowMenu( pos );
191 bridge_->performWindowOperation( op );
196 bridge_->setMask( reg, mode );
201 bridge_->setMask( TQRegion(), 0 );
206 return bridge_->isPreview();
211 return bridge_->geometry();
216 return bridge_->iconGeometry();
221 return bridge_->unobscuredRegion( r );
226 return bridge_->workspaceWidget();
231 return bridge_->windowId();
236 bridge_->closeWindow();
239 void KDecoration::maximize( ButtonState button )
246 bridge_->maximize( mode );
256 bridge_->showContextHelp();
261 bridge_->setDesktop( desktop );
274 bridge_->titlebarDblClickOperation();
279 bridge_->titlebarMouseWheelOperation( delta );
284 bridge_->setShade(
set );
289 bridge_->setKeepAbove(
set );
294 bridge_->setKeepBelow(
set );
307 bool KDecoration::windowDocked(
Position )
314 bridge_->helperShowHide( show );
323 bridge_->grabXServer(
true );
328 bridge_->grabXServer(
false );
333 const int range = 16;
334 int bleft, bright, btop, bbottom;
335 borders( bleft, bright, btop, bbottom );
336 btop = KMIN( btop, 4 );
340 if ( ( p.x() > bleft && p.x() <
widget()->width() - bright )
341 && ( p.y() > btop && p.y() <
widget()->height() - bbottom ) )
342 return PositionCenter;
344 if ( p.y() <= KMAX( range, btop ) && p.x() <= KMAX( range, bleft ))
346 else if ( p.y() >=
widget()->height()- KMAX( range, bbottom )
347 && p.x() >=
widget()->width()- KMAX( range, bright ))
348 m = PositionBottomRight;
349 else if ( p.y() >=
widget()->height()- KMAX( range, bbottom ) && p.x() <= KMAX( range, bleft ))
350 m = PositionBottomLeft;
351 else if ( p.y() <= KMAX( range, btop ) && p.x() >=
widget()->width()- KMAX( range, bright ))
352 m = PositionTopRight;
353 else if ( p.y() <= btop )
355 else if ( p.y() >=
widget()->height()-bbottom )
357 else if ( p.x() <= bleft )
359 else if ( p.x() >=
widget()->width()-bright )
366 KDecorationOptions::KDecorationOptions()
368 assert( KDecoration::options_ == NULL );
369 KDecoration::options_ =
this;
372 KDecorationOptions::~KDecorationOptions()
374 assert( KDecoration::options_ ==
this );
375 KDecoration::options_ = NULL;
380 return(d->colors[type + (active ? 0 : NUM_COLORS)]);
386 return(active ? d->activeFontSmall : d->inactiveFontSmall);
388 return(active ? d->activeFont : d->inactiveFont);
393 int idx = type + (active ? 0 : NUM_COLORS);
396 d->cg[idx] =
new TQColorGroup(Qt::black, d->colors[idx], d->colors[idx].light(150),
397 d->colors[idx].dark(), d->colors[idx].dark(120),
398 Qt::black, TQApplication::palette().active().
405 return d->custom_button_positions;
410 return d->title_buttons_left;
415 return d->title_buttons_right;
420 return d->show_tooltips;
425 assert( factory != NULL );
426 if( d->cached_border_size == BordersCount )
427 d->cached_border_size = d->findPreferredBorderSize( d->border_size,
428 factory->borderSizes());
429 return d->cached_border_size;
432 bool KDecorationOptions::moveResizeMaximizedWindows()
const
434 return d->move_resize_maximized_windows;
439 return button == Qt::RightButton? d->OpMaxButtonRightClick :
440 button == Qt::MidButton? d->OpMaxButtonMiddleClick :
441 d->OpMaxButtonLeftClick;
444 #include "kdecoration.moc"