[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