[kde-solaris] Re: kmultitabbar
Christopher Layne
clayne at anodized.com
Tue Aug 31 01:08:37 CEST 2004
Well I have this, but something tells me rint() is not goin to have
the same effect desired.
-cl
On Mon, Aug 30, 2004 at 03:38:40PM -0700, Christopher Layne wrote:
> FYI,
>
> kmultitabbar.cpp in HEAD is using C99 specific stuff which will break on OS'
> without libc support for it (in my case, Solaris 8).
>
> Compile-time errors about undeclared function, nearbyintf,
>
> As called in lines like:
>
> tab->move((int)nearbyintf(tmp-tab->neededSize()),lines*24);
>
> This function is C99 specific.
>
> I'll see what I can do on my side (patch, etc).
>
> -cl
-------------- next part --------------
Index: kdelibs/kutils/kmultitabbar.cpp
===================================================================
RCS file: /home/kde/kdelibs/kutils/kmultitabbar.cpp,v
retrieving revision 1.63
diff -u -3 -p -r1.63 kmultitabbar.cpp
--- kdelibs/kutils/kmultitabbar.cpp 28 Aug 2004 21:30:57 -0000 1.63
+++ kdelibs/kutils/kmultitabbar.cpp 30 Aug 2004 23:02:43 -0000
@@ -39,6 +39,14 @@
#include <qapplication.h>
#include <math.h>
+#ifndef NEARBYINTF
+#define NEARBYINTF
+#endif
+
+#ifdef USE_SOLARIS
+#undef NEARBYINTF
+#endif
+
class KMultiTabBarTabPrivate {
public:
QPixmap pix;
@@ -242,9 +250,17 @@ void KMultiTabBarInternal::resizeEvent(Q
//kdDebug()<<"placing line on old line"<<endl;
kdDebug()<<"diff="<<diff<<endl;
tab->removeEventFilter(this);
+#ifdef NEARBYINTF
tab->move((int)nearbyintf(tmp-tab->neededSize()),lines*24);
+#else
+ tab->move((int)rint(tmp-tab->neededSize()),lines*24);
+#endif
// tab->setFixedWidth(tab->neededSize()+diff);
+#ifdef NEARBYINTF
tab->setFixedWidth((int)nearbyintf((tmp+diff)-tab->x()));;
+#else
+ tab->setFixedWidth((int)rint((tmp+diff)-tab->x()));;
+#endif
tab->installEventFilter(this);
CALCDIFF(m_tabs,diff,(i+1))
@@ -258,8 +274,13 @@ void KMultiTabBarInternal::resizeEvent(Q
//kdDebug()<<"Placing line on line:"<<lines<<" pos: (x/y)=("<<tmp-m_tabs.at(i)->neededSize()<<"/"<<lines*24<<")"<<endl;
//kdDebug()<<"diff="<<diff<<endl;
tab->removeEventFilter(this);
+#ifdef NEARBYINTF
tab->move((int)nearbyintf(tmp-tab->neededSize()),lines*24);
tab->setFixedWidth((int)nearbyintf((tmp+diff)-tab->x()));;
+#else
+ tab->move((int)rint(tmp-tab->neededSize()),lines*24);
+ tab->setFixedWidth((int)rint((tmp+diff)-tab->x()));;
+#endif
//tab->setFixedWidth(tab->neededSize()+diff);
tab->installEventFilter(this);
@@ -287,8 +308,13 @@ void KMultiTabBarInternal::resizeEvent(Q
}
else {
tab->removeEventFilter(this);
+#ifdef NEARBYINTF
tab->move(lines*24,(int)nearbyintf(tmp-tab->neededSize()));
tab->setFixedHeight((int)nearbyintf((tmp+diff)-tab->y()));;
+#else
+ tab->move(lines*24,(int)rint(tmp-tab->neededSize()));
+ tab->setFixedHeight((int)rint((tmp+diff)-tab->y()));;
+#endif
tab->installEventFilter(this);
}
cnt=0;
@@ -296,8 +322,13 @@ void KMultiTabBarInternal::resizeEvent(Q
lines++;
} else {
tab->removeEventFilter(this);
+#ifdef NEARBYINTF
tab->move(lines*24,(int)nearbyintf(tmp-tab->neededSize()));
tab->setFixedHeight((int)nearbyintf((tmp+diff)-tab->y()));;
+#else
+ tab->move(lines*24,(int)rint(tmp-tab->neededSize()));
+ tab->setFixedHeight((int)rint((tmp+diff)-tab->y()));;
+#endif
tab->installEventFilter(this);
}
}
More information about the kde-solaris
mailing list