|
|
|
@ -284,7 +284,7 @@ void KDGanttSplitterHandle::paintEvent( TQPaintEvent * )
|
|
|
|
|
bitBlt( this, 0, 0, &buffer );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class TQSplitterLayoutStruct
|
|
|
|
|
class KDGanttSplitterLayoutStruct
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
KDGanttMinimizeSplitter::ResizeMode mode;
|
|
|
|
@ -298,7 +298,7 @@ class TQSplitterData
|
|
|
|
|
public:
|
|
|
|
|
TQSplitterData() : opaque( FALSE ), firstShow( TRUE ) {}
|
|
|
|
|
|
|
|
|
|
TQPtrList<TQSplitterLayoutStruct> list;
|
|
|
|
|
TQPtrList<KDGanttSplitterLayoutStruct> list;
|
|
|
|
|
bool opaque;
|
|
|
|
|
bool firstShow;
|
|
|
|
|
};
|
|
|
|
@ -438,7 +438,7 @@ void KDGanttMinimizeSplitter::setOrientation( Qt::Orientation o )
|
|
|
|
|
else
|
|
|
|
|
tqsetSizePolicy( TQSizePolicy( TQSizePolicy::Minimum, TQSizePolicy::Expanding ) );
|
|
|
|
|
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
while ( s ) {
|
|
|
|
|
if ( s->isSplitter )
|
|
|
|
|
((KDGanttSplitterHandle*)s->wid)->setOrientation( o );
|
|
|
|
@ -466,12 +466,12 @@ void KDGanttMinimizeSplitter::resizeEvent( TQResizeEvent * )
|
|
|
|
|
needed. (If \a first is TRUE, then recalcId is very probably
|
|
|
|
|
needed.)
|
|
|
|
|
*/
|
|
|
|
|
TQSplitterLayoutStruct *KDGanttMinimizeSplitter::addWidget( TQWidget *w, bool first )
|
|
|
|
|
KDGanttSplitterLayoutStruct *KDGanttMinimizeSplitter::addWidget( TQWidget *w, bool first )
|
|
|
|
|
{
|
|
|
|
|
TQSplitterLayoutStruct *s;
|
|
|
|
|
KDGanttSplitterLayoutStruct *s;
|
|
|
|
|
KDGanttSplitterHandle *newHandle = 0;
|
|
|
|
|
if ( data->list.count() > 0 ) {
|
|
|
|
|
s = new TQSplitterLayoutStruct;
|
|
|
|
|
s = new KDGanttSplitterLayoutStruct;
|
|
|
|
|
s->mode = KeepSize;
|
|
|
|
|
TQString tmp = "qt_splithandle_";
|
|
|
|
|
tmp += w->name();
|
|
|
|
@ -485,7 +485,7 @@ TQSplitterLayoutStruct *KDGanttMinimizeSplitter::addWidget( TQWidget *w, bool fi
|
|
|
|
|
else
|
|
|
|
|
data->list.append( s );
|
|
|
|
|
}
|
|
|
|
|
s = new TQSplitterLayoutStruct;
|
|
|
|
|
s = new KDGanttSplitterLayoutStruct;
|
|
|
|
|
s->mode = Stretch;
|
|
|
|
|
s->wid = w;
|
|
|
|
|
if ( !testWState( WState_Resized ) && w->tqsizeHint().isValid() )
|
|
|
|
@ -516,7 +516,7 @@ void KDGanttMinimizeSplitter::childEvent( TQChildEvent *c )
|
|
|
|
|
if ( ((TQWidget*)c->child())->testWFlags( WType_TopLevel ) )
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
while ( s ) {
|
|
|
|
|
if ( s->wid == c->child() )
|
|
|
|
|
return;
|
|
|
|
@ -526,10 +526,10 @@ void KDGanttMinimizeSplitter::childEvent( TQChildEvent *c )
|
|
|
|
|
recalc( isVisible() );
|
|
|
|
|
|
|
|
|
|
} else if ( c->type() == TQEvent::ChildRemoved ) {
|
|
|
|
|
TQSplitterLayoutStruct *p = 0;
|
|
|
|
|
KDGanttSplitterLayoutStruct *p = 0;
|
|
|
|
|
if ( data->list.count() > 1 )
|
|
|
|
|
p = data->list.at(1); //remove handle _after_ first widget.
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
while ( s ) {
|
|
|
|
|
if ( s->wid == c->child() ) {
|
|
|
|
|
data->list.removeRef( s );
|
|
|
|
@ -615,7 +615,7 @@ void KDGanttMinimizeSplitter::drawSplitter( TQPainter *p,
|
|
|
|
|
*/
|
|
|
|
|
int KDGanttMinimizeSplitter::idAfter( TQWidget* w ) const
|
|
|
|
|
{
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
bool seen_w = FALSE;
|
|
|
|
|
while ( s ) {
|
|
|
|
|
if ( s->isSplitter && seen_w )
|
|
|
|
@ -644,7 +644,7 @@ void KDGanttMinimizeSplitter::moveSplitter( TQCOORD p, int id )
|
|
|
|
|
{
|
|
|
|
|
p = adjustPos( p, id );
|
|
|
|
|
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.at(id);
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.at(id);
|
|
|
|
|
int oldP = orient ==Qt::Horizontal ? s->wid->x() : s->wid->y();
|
|
|
|
|
bool upLeft;
|
|
|
|
|
if ( TQApplication::reverseLayout() && orient ==Qt::Horizontal ) {
|
|
|
|
@ -680,7 +680,7 @@ void KDGanttMinimizeSplitter::moveBefore( int pos, int id, bool upLeft )
|
|
|
|
|
{
|
|
|
|
|
if( id < 0 )
|
|
|
|
|
return;
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.at(id);
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.at(id);
|
|
|
|
|
if ( !s )
|
|
|
|
|
return;
|
|
|
|
|
TQWidget *w = s->wid;
|
|
|
|
@ -729,7 +729,7 @@ void KDGanttMinimizeSplitter::moveBefore( int pos, int id, bool upLeft )
|
|
|
|
|
*/
|
|
|
|
|
void KDGanttMinimizeSplitter::moveAfter( int pos, int id, bool upLeft )
|
|
|
|
|
{
|
|
|
|
|
TQSplitterLayoutStruct *s = id < int(data->list.count()) ?
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = id < int(data->list.count()) ?
|
|
|
|
|
data->list.at(id) : 0;
|
|
|
|
|
if ( !s )
|
|
|
|
|
return;
|
|
|
|
@ -781,7 +781,7 @@ void KDGanttMinimizeSplitter::moveAfter( int pos, int id, bool upLeft )
|
|
|
|
|
|
|
|
|
|
void KDGanttMinimizeSplitter::expandPos( int id, int* min, int* max )
|
|
|
|
|
{
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.at(id-1);
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.at(id-1);
|
|
|
|
|
TQWidget* w = s->wid;
|
|
|
|
|
*min = pick( w->mapToParent( TQPoint(0,0) ) );
|
|
|
|
|
|
|
|
|
@ -789,7 +789,7 @@ void KDGanttMinimizeSplitter::expandPos( int id, int* min, int* max )
|
|
|
|
|
pick( size() );
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.at(id+1);
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.at(id+1);
|
|
|
|
|
TQWidget* w = s->wid;
|
|
|
|
|
*max = pick( w->mapToParent( TQPoint( w->width(), w->height() ) ) ) -8;
|
|
|
|
|
}
|
|
|
|
@ -813,7 +813,7 @@ void KDGanttMinimizeSplitter::getRange( int id, int *min, int *max )
|
|
|
|
|
return;
|
|
|
|
|
int i;
|
|
|
|
|
for ( i = 0; i < id; i++ ) {
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.at(i);
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.at(i);
|
|
|
|
|
if ( s->wid->isHidden() ) {
|
|
|
|
|
//ignore
|
|
|
|
|
} else if ( s->isSplitter ) {
|
|
|
|
@ -825,7 +825,7 @@ void KDGanttMinimizeSplitter::getRange( int id, int *min, int *max )
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for ( i = id; i < n; i++ ) {
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.at(i);
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.at(i);
|
|
|
|
|
if ( s->wid->isHidden() ) {
|
|
|
|
|
//ignore
|
|
|
|
|
} else if ( s->isSplitter ) {
|
|
|
|
@ -877,7 +877,7 @@ void KDGanttMinimizeSplitter::doResize()
|
|
|
|
|
TQMemArray<TQLayoutStruct> a( n );
|
|
|
|
|
for ( i = 0; i< n; i++ ) {
|
|
|
|
|
a[i].init();
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.at(i);
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.at(i);
|
|
|
|
|
if ( s->wid->isHidden() ) {
|
|
|
|
|
a[i].stretch = 0;
|
|
|
|
|
a[i].tqsizeHint = a[i].tqminimumSize = 0;
|
|
|
|
@ -908,7 +908,7 @@ void KDGanttMinimizeSplitter::doResize()
|
|
|
|
|
kdganttGeomCalc( a, 0, n, pick( r.topLeft() ), pick( r.size() ), 0 );
|
|
|
|
|
|
|
|
|
|
for ( i = 0; i< n; i++ ) {
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.at(i);
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.at(i);
|
|
|
|
|
setG( s->wid, a[i].pos, a[i].size );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -930,9 +930,9 @@ void KDGanttMinimizeSplitter::recalc( bool update )
|
|
|
|
|
The splitter before any other visible widget is visible.
|
|
|
|
|
*/
|
|
|
|
|
for ( int i = 0; i< n; i++ ) {
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.at(i);
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.at(i);
|
|
|
|
|
if ( !s->isSplitter ) {
|
|
|
|
|
TQSplitterLayoutStruct *p = (i > 0) ? data->list.at( i-1 ) : 0;
|
|
|
|
|
KDGanttSplitterLayoutStruct *p = (i > 0) ? data->list.at( i-1 ) : 0;
|
|
|
|
|
if ( p && p->isSplitter )
|
|
|
|
|
if ( first || s->wid->isHidden() )
|
|
|
|
|
p->wid->hide(); //may trigger new recalc
|
|
|
|
@ -945,7 +945,7 @@ void KDGanttMinimizeSplitter::recalc( bool update )
|
|
|
|
|
|
|
|
|
|
bool empty=TRUE;
|
|
|
|
|
for ( int j = 0; j< n; j++ ) {
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.at(j);
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.at(j);
|
|
|
|
|
if ( !s->wid->isHidden() ) {
|
|
|
|
|
empty = FALSE;
|
|
|
|
|
if ( s->isSplitter ) {
|
|
|
|
@ -996,7 +996,7 @@ void KDGanttMinimizeSplitter::recalc( bool update )
|
|
|
|
|
void KDGanttMinimizeSplitter::setResizeMode( TQWidget *w, ResizeMode mode )
|
|
|
|
|
{
|
|
|
|
|
processChildEvents();
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
while ( s ) {
|
|
|
|
|
if ( s->wid == w ) {
|
|
|
|
|
s->mode = mode;
|
|
|
|
@ -1043,11 +1043,11 @@ void KDGanttMinimizeSplitter::moveToFirst( TQWidget *w )
|
|
|
|
|
{
|
|
|
|
|
processChildEvents();
|
|
|
|
|
bool found = FALSE;
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
while ( s ) {
|
|
|
|
|
if ( s->wid == w ) {
|
|
|
|
|
found = TRUE;
|
|
|
|
|
TQSplitterLayoutStruct *p = data->list.prev();
|
|
|
|
|
KDGanttSplitterLayoutStruct *p = data->list.prev();
|
|
|
|
|
if ( p ) { // not already at first place
|
|
|
|
|
data->list.take(); //take p
|
|
|
|
|
data->list.take(); // take s
|
|
|
|
@ -1072,12 +1072,12 @@ void KDGanttMinimizeSplitter::moveToLast( TQWidget *w )
|
|
|
|
|
{
|
|
|
|
|
processChildEvents();
|
|
|
|
|
bool found = FALSE;
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
while ( s ) {
|
|
|
|
|
if ( s->wid == w ) {
|
|
|
|
|
found = TRUE;
|
|
|
|
|
data->list.take(); // take s
|
|
|
|
|
TQSplitterLayoutStruct *p = data->list.current();
|
|
|
|
|
KDGanttSplitterLayoutStruct *p = data->list.current();
|
|
|
|
|
if ( p ) { // the splitter handle after s
|
|
|
|
|
data->list.take(); //take p
|
|
|
|
|
data->list.append( p );
|
|
|
|
@ -1097,7 +1097,7 @@ void KDGanttMinimizeSplitter::recalcId()
|
|
|
|
|
{
|
|
|
|
|
int n = data->list.count();
|
|
|
|
|
for ( int i = 0; i < n; i++ ) {
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.at(i);
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.at(i);
|
|
|
|
|
if ( s->isSplitter )
|
|
|
|
|
((KDGanttSplitterHandle*)s->wid)->setId(i);
|
|
|
|
|
}
|
|
|
|
@ -1168,7 +1168,7 @@ TQSize KDGanttMinimizeSplitter::tqminimumSizeHint() const
|
|
|
|
|
|
|
|
|
|
void KDGanttMinimizeSplitter::storeSizes()
|
|
|
|
|
{
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
while ( s ) {
|
|
|
|
|
if ( !s->isSplitter )
|
|
|
|
|
s->sizer = pick( s->wid->size() );
|
|
|
|
@ -1253,7 +1253,7 @@ TQValueList<int> KDGanttMinimizeSplitter::sizes() const
|
|
|
|
|
that->polish();
|
|
|
|
|
}
|
|
|
|
|
TQValueList<int> list;
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
while ( s ) {
|
|
|
|
|
if ( !s->isSplitter )
|
|
|
|
|
list.append( s->sizer );
|
|
|
|
@ -1281,7 +1281,7 @@ void KDGanttMinimizeSplitter::setSizes( TQValueList<int> list )
|
|
|
|
|
{
|
|
|
|
|
processChildEvents();
|
|
|
|
|
TQValueList<int>::Iterator it = list.begin();
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
while ( s && it != list.end() ) {
|
|
|
|
|
if ( !s->isSplitter ) {
|
|
|
|
|
s->sizer = *it;
|
|
|
|
@ -1311,7 +1311,7 @@ void KDGanttMinimizeSplitter::processChildEvents()
|
|
|
|
|
void KDGanttMinimizeSplitter::styleChange( TQStyle& old )
|
|
|
|
|
{
|
|
|
|
|
int sw = tqstyle().tqpixelMetric(TQStyle::PM_SplitterWidth, this);
|
|
|
|
|
TQSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
KDGanttSplitterLayoutStruct *s = data->list.first();
|
|
|
|
|
while ( s ) {
|
|
|
|
|
if ( s->isSplitter )
|
|
|
|
|
s->sizer = sw;
|
|
|
|
|