[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Re: [PATCH] BIC changes to KPanelApplet
From:       John Firebaugh <jfirebaugh () kde ! org>
Date:       2002-03-09 18:06:38
[Download RAW message or body]

On Friday 08 March 2002 11:07 am, John Firebaugh wrote:
> On Friday 08 March 2002 10:00 am, Richard Moore wrote:
> > Does this/should this affect extensions as well?
>
> It probably should.

The attached patches for kdelibs and kicker implement notification of changes 
in alignment for applets and extensions. This is a prerequisite for fixing 
bugs with the publishing of icon geometries in taskbars. It requires binary 
incompatible changes. Therefore I consider it to be a critical fix for 3.0 -- 
if it doesn't go in now, the bug can't be fixed until the next time BIC 
changes are allowed. May I commit?

-John
["kdelibs.diff" (text/x-diff)]

? kdelibs.diff
? kpanelapplet.diff
? kdecore/kapplication.loT
? kdewidgets/pics/Makefile
Index: kdeui/kpanelapplet.cpp
===================================================================
RCS file: /home/kde/kdelibs/kdeui/kpanelapplet.cpp,v
retrieving revision 1.20
diff -u -3 -p -r1.20 kpanelapplet.cpp
--- kdeui/kpanelapplet.cpp	2002/03/04 00:51:50	1.20
+++ kdeui/kpanelapplet.cpp	2002/03/09 17:13:18
@@ -30,8 +30,8 @@ KPanelApplet::KPanelApplet(const QString
                            int actions, QWidget *parent, const char *name, WFlags f)
   : QFrame(parent, name, f)
   , _type(type)
-  , _orient( Horizontal )
-  , _dir(Up)
+  , _position( pBottom )
+  , _alignment( LeftTop )
   , _config(0)
   , _actions(actions)
 {
@@ -50,20 +50,49 @@ KPanelApplet::~KPanelApplet()
   delete _config;
 }
 
-void KPanelApplet::slotSetOrientation(Orientation o)
+void KPanelApplet::setPosition( Position p )
 {
-  _orient = o;
-  orientationChange( o );
+  if( _position == p ) return;
+  _position = p;
+  positionChange( p );
+}
+
+void KPanelApplet::setAlignment( Alignment a )
+{
+  if( _alignment == a ) return;
+  _alignment = a;
+  alignmentChange( a );
+}
+
+// FIXME: Remove implementation for KDE 4
+void KPanelApplet::positionChange( Position )
+{
+  orientationChange( orientation() );
   QResizeEvent e( size(), size() );
   resizeEvent( &e );
+  popupDirectionChange( popupDirection() );
 }
 
-void KPanelApplet::slotSetPopupDirection(Direction d)
+Qt::Orientation KPanelApplet::orientation() const
 {
-  _dir = d;
-  popupDirectionChange( d );
+  if( _position == pTop || _position == pBottom ) {
+    return Horizontal;
+  } else {
+    return Vertical;
+  }
 }
 
+// FIXME: Remove for KDE 4
+KPanelApplet::Direction KPanelApplet::popupDirection()
+{
+    switch( _position ) {
+    case pTop:     return Down;
+    case pRight:   return Left;
+    case pLeft:    return Right;
+    default:
+    case pBottom:  return Up;
+    }
+}
 
 void KPanelApplet::action( Action a )
 {
Index: kdeui/kpanelapplet.h
===================================================================
RCS file: /home/kde/kdelibs/kdeui/kpanelapplet.h,v
retrieving revision 1.25
diff -u -3 -p -r1.25 kpanelapplet.h
--- kdeui/kpanelapplet.h	2002/03/04 00:51:51	1.25
+++ kdeui/kpanelapplet.h	2002/03/09 17:13:18
@@ -108,6 +108,10 @@ public:
      * which items the context menu over the applet handle contains.
      */
     enum Action { About = 1, Help = 2, Preferences = 4, ReportBug = 8 };
+    // FIXME: Remove 'p' from element names for KDE 4.
+    enum Position { pLeft = 0, pRight, pTop, pBottom };
+    enum Alignment { LeftTop = 0, Center, RightBottom };
+    // FIXME: Remove for KDE 4.
     enum Direction { Up = 0, Down, Left, Right };
 
     /**
@@ -205,6 +209,15 @@ public:
      **/
     virtual void action( Action a );
 
+    /**
+     * @internal
+     **/
+    void setPosition( Position p );
+    /**
+     * @internal
+     **/
+    void setAlignment( Alignment a );
+
 signals:
     /**
      * Emit this signal to make the panel relayout all applets, when
@@ -227,18 +240,6 @@ signals:
      **/
     void requestFocus();
 
-
-public slots:
-    /**
-     * Don't reimplement, this is used internally
-     **/
-    void slotSetOrientation(Orientation o);
-
-    /**
-     * Don't reimplement, this is used internally
-     **/
-    void slotSetPopupDirection(Direction d);
-
 protected:
 
     /**
@@ -280,36 +281,63 @@ protected:
 
     /**
      * @return the applet's orientation. (horizontal or vertical)
+     **/
+    Orientation orientation() const;
+    /**
+     * @return the applet's position. (top, left, bottom, or right)
      **/
-    Orientation orientation() const { return _orient; }
+    Position position() const { return _position; }
+    /**
+     * @return the applet's alignment. (top/left, center, or bottom/right)
+     **/
+    Alignment alignment() const { return _alignment; }
 
+    /**
+     * The panel on which this applet resides has changed its position.
+     * Reimplement this change handler in order to adjust the look of your
+     * applet.
+     **/
+    virtual void positionChange( Position p );
+
+    /**
+     * The panel on which this applet resides has changed its alignment.
+     * Reimplement this change handler in order to adjust the look of your
+     * applet.
+     **/
+    virtual void alignmentChange( Alignment a ) {};
 
     /**
      * The orientation changed to @p orientation. Reimplement this
      * change handler in order to adjust the look of your applet.
+     *
+     * @deprecated Reimplement arrangementChanged instead.
      **/
+    // FIXME: Remove for KDE 4
     virtual void orientationChange( Orientation /* orientation*/) {}
 
     /**
      * You may need this if you want to popup menus at the right position.
      *
      * See @ref  popupDirectionChange()
+     *
+     * @deprecated Use position() instead.
      **/
-    Direction popupDirection() const { return _dir; }
-
+    // FIXME: Remove for KDE 4
+    Direction popupDirection();
 
     /**
      * The popup direction changed to @p direction. Reimplement this
      * change handler in order to adjust the look of your applet.
+     *
+     * @deprecated Reimplement arrangementChanged instead.
      **/
+    // FIXME: Remove for KDE 4
     virtual void popupDirectionChange( Direction /*direction*/ ) {}
 
-
-
 private:
     Type         _type;
-    Orientation  _orient;
-    Direction    _dir;
+    Position     _position;
+    Alignment    _alignment;
     KConfig*     _config;
     int          _actions;
 protected:
Index: kdeui/kpanelextension.cpp
===================================================================
RCS file: /home/kde/kdelibs/kdeui/kpanelextension.cpp,v
retrieving revision 1.4
diff -u -3 -p -r1.4 kpanelextension.cpp
--- kdeui/kpanelextension.cpp	2002/03/04 00:51:51	1.4
+++ kdeui/kpanelextension.cpp	2002/03/09 17:13:18
@@ -30,7 +30,8 @@ KPanelExtension::KPanelExtension(const Q
 				 int actions, QWidget *parent, const char *name)
   : QFrame(parent, name)
   , _type(type)
-  , _pos( Top )
+  , _position( Top )
+  , _alignment( LeftTop )
   , _config(0)
   , _actions(actions)
 {
@@ -43,14 +44,20 @@ KPanelExtension::~KPanelExtension()
     delete _config;
 }
 
-void KPanelExtension::slotSetPosition(Position p)
+void KPanelExtension::setPosition( Position p )
 {
-    _pos = p;
-    positionChange(p);
-    QResizeEvent e(size(), size());
-    resizeEvent(&e);
+  if( _position == p ) return;
+  _position = p;
+  positionChange( p );
 }
 
+void KPanelExtension::setAlignment( Alignment a )
+{
+  if( _alignment == a ) return;
+  _alignment = a;
+  alignmentChange( a );
+}
+
 void KPanelExtension::action( Action a )
 {
     if ( (a & About) != 0 )
@@ -65,7 +72,7 @@ void KPanelExtension::action( Action a )
 
 Qt::Orientation KPanelExtension::orientation()
 {
-    if (_pos == Left || _pos == Right)
+    if (_position == Left || _position == Right)
 	return Vertical;
     else
 	return Horizontal;
Index: kdeui/kpanelextension.h
===================================================================
RCS file: /home/kde/kdelibs/kdeui/kpanelextension.h,v
retrieving revision 1.8
diff -u -3 -p -r1.8 kpanelextension.h
--- kdeui/kpanelextension.h	2002/03/04 00:51:51	1.8
+++ kdeui/kpanelextension.h	2002/03/09 17:13:18
@@ -102,6 +102,7 @@ public:
     enum Type { Normal = 0, Stretch };
     enum Action { About = 1, Help = 2, Preferences = 4, ReportBug = 8 };
     enum Position { Left = 0, Right, Top, Bottom };
+    enum Alignment { LeftTop = 0, Center, RightBottom };
 
     /**
      * Constructs a KPanelExtension just like any other widget.
@@ -175,6 +176,15 @@ public:
      **/
     virtual Position preferedPosition() const { return Bottom; }
 
+    /**
+     * @internal
+     **/
+    void setPosition( Position p );
+    /**
+     * @internal
+     **/
+    void setAlignment( Alignment a );
+
 signals:
     /**
      * Emit this signal to make the panel relayout all extensions in the dock, when you want
@@ -183,12 +193,6 @@ signals:
      **/
     void updateLayout();
 
-public slots:
-    /**
-     * Don't reimplement, this is used internally
-     **/
-    void slotSetPosition(Position p);
-
 protected:
 
     /**
@@ -230,23 +234,37 @@ protected:
 
     /**
      * @return the extension's position. (left, right, top, bottom)
+     **/
+    Position position() const { return _position; }
+
+    /**
+     * @return the extension's alignment. (left/top, center, or right/bottom)
      **/
-    Position position() const { return _pos; }
+    Alignment alignment() const { return _alignment; }
 
     /**
      * @return the extensions orientation. (horizontal or vertical)
      **/
     Orientation orientation();
 
+    /**
+     * This extension has changed its position.
+     * Reimplement this change handler in order to adjust the look of your
+     * applet.
+     **/
+    virtual void positionChange( Position ) {};
+
     /**
-     * The position changed to @p position. Reimplement this
-     * change handler in order to adjust the look of your extension.
+     * This extension has changed its alignment.
+     * Reimplement this change handler in order to adjust the look of your
+     * applet.
      **/
-    virtual void positionChange( Position /* position */) {}
+    virtual void alignmentChange( Alignment ) {};
 
 private:
     Type         		_type;
-    Position     		_pos;
+    Position     		_position;
+    Alignment    		_alignment;
     KConfig*     		_config;
     int          		_actions;
 protected:
Index: kdewidgets/pics/Makefile.in
===================================================================
RCS file: /home/kde/kdelibs/kdewidgets/pics/Makefile.in,v
retrieving revision 1.1
diff -u -3 -p -r1.1 Makefile.in
--- kdewidgets/pics/Makefile.in	2002/03/09 00:12:36	1.1
+++ kdewidgets/pics/Makefile.in	2002/03/09 17:13:20
@@ -1,5 +1,5 @@
-# KDE tags expanded automatically by am_edit - $Revision: 1.1 $ 
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
+# KDE tags expanded automatically by am_edit - $Revision: 1.303 $ 
+# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
 
 # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
@@ -85,6 +85,7 @@ DLLTOOL = @DLLTOOL@
 DOJAVA = @DOJAVA@
 DPMSINC = @DPMSINC@
 DPMSLIB = @DPMSLIB@
+ECHO = @ECHO@
 EXEEXT = @EXEEXT@
 EXTRA_SUBDIRS = @EXTRA_SUBDIRS@
 GCJ = @GCJ@
@@ -204,6 +205,7 @@ QTOPIA_INCLUDES = @QTOPIA_INCLUDES@
 QT_INCLUDES = @QT_INCLUDES@
 QT_LDFLAGS = @QT_LDFLAGS@
 RANLIB = @RANLIB@
+RC = @RC@
 REPO = @REPO@
 SETUIDFLAGS = @SETUIDFLAGS@
 SMARTCARDDIR = @SMARTCARDDIR@
@@ -274,7 +276,7 @@ DIST_COMMON =  Makefile.am Makefile.in
 
 #>- DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 #>+ 4
-KDE_DIST=kled.png kcolorbutton.png kdualcolorbutton.png kgradientselector.png khsselector.png 
+KDE_DIST=kgradientselector.png khsselector.png kled.png kdualcolorbutton.png kcolorbutton.png 
 
 DISTFILES= $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
 

["kicker.diff" (text/x-diff)]

? kicker.kdevprj
Index: core/container_applet.cpp
===================================================================
RCS file: /home/kde/kdebase/kicker/core/container_applet.cpp,v
retrieving revision 1.34
diff -u -3 -p -r1.34 container_applet.cpp
--- core/container_applet.cpp	2002/03/01 14:50:45	1.34
+++ core/container_applet.cpp	2002/03/09 18:02:35
@@ -216,12 +216,18 @@ InternalAppletContainer::InternalAppletC
 
     if (!_applet) return;
 
-    _applet->slotSetOrientation(_orient);
+    // FIXME: Do we really want to do this here?
+    _applet->setPosition(  (KPanelApplet::Position)directionToPosition( popupDirection() ) );
+    _applet->setAlignment( (KPanelApplet::Alignment)alignment() );
+
     _actions = _applet->actions();
     _type = _applet->type();
 
     connect(_applet, SIGNAL(updateLayout()), SIGNAL(updateLayout()));
     connect(_applet, SIGNAL(requestFocus()), SLOT(activateWindow()));
+
+    connect( this, SIGNAL(alignmentChange(Alignment)),
+             this, SLOT(slotAlignmentChange(Alignment)) );
 }
 
 
@@ -236,17 +242,12 @@ void InternalAppletContainer::slotSetPop
     AppletContainer::slotSetPopupDirection(d);
 
     if ( !_applet ) return;
-    _applet->slotSetPopupDirection((KPanelApplet::Direction)(d));
+    _applet->setPosition( (KPanelApplet::Position)directionToPosition(d) );
 }
 
-void InternalAppletContainer::slotSetOrientation(Orientation o)
+void InternalAppletContainer::slotAlignmentChange( Alignment a )
 {
-    if (_orient == o) return;
-
-    AppletContainer::slotSetOrientation(o);
-
-    if (!_applet) return;
-    _applet->slotSetOrientation(o);
+    _applet->setAlignment( (KPanelApplet::Alignment)a );
 }
 
 int InternalAppletContainer::widthForHeight(int h) const
@@ -316,6 +317,9 @@ ExternalAppletContainer::ExternalAppletC
 	    << objId()
 	    << info.desktopFile();
     process.start(KProcess::DontCare);
+
+    connect( this, SIGNAL(alignmentChange(Alignment)),
+             this, SLOT(slotAlignmentChange(Alignment)) );
 }
 
 ExternalAppletContainer::~ExternalAppletContainer()
@@ -339,19 +343,15 @@ void ExternalAppletContainer::slotSetPop
     kapp->dcopClient()->send( _app, "AppletProxy", "setDirection(int)", data);
 }
 
-void ExternalAppletContainer::slotSetOrientation(Orientation o)
+void ExternalAppletContainer::slotAlignmentChange( Alignment a )
 {
-    if (_orient == o) return;
-
-    AppletContainer::slotSetOrientation(o);
-
     if (!_isdocked) return;
 
     QByteArray data;
     QDataStream dataStream( data, IO_WriteOnly );
-    dataStream << static_cast<int>(o);
+    dataStream << static_cast<int>(a);
 
-    kapp->dcopClient()->send( _app, "AppletProxy", "setOrientation(int)", data );
+    kapp->dcopClient()->send( _app, "AppletProxy", "setAlignment(int)", data );
 }
 
 void ExternalAppletContainer::about()
Index: core/container_applet.h
===================================================================
RCS file: /home/kde/kdebase/kicker/core/container_applet.h,v
retrieving revision 1.15
diff -u -3 -p -r1.15 container_applet.h
--- core/container_applet.h	2002/03/01 14:50:45	1.15
+++ core/container_applet.h	2002/03/09 18:02:35
@@ -102,8 +102,10 @@ public:
 
 public slots:
     void slotSetPopupDirection(Direction d);
-    void slotSetOrientation(Orientation o);
 
+private slots:
+    void slotAlignmentChange( Alignment a );
+
 private:
     QCString      _id;
     KPanelApplet *_applet;
@@ -132,7 +134,6 @@ public:
 		 QCString& replyType, QByteArray &replyData);
 public slots:
     void slotSetPopupDirection(Direction d);
-    void slotSetOrientation(Orientation o);
 
 signals:
     void embeddedWindowDestroyed();
@@ -140,6 +141,9 @@ signals:
 
 protected:
     void dockRequest(QCString app, int actions, int type);
+
+private slots:
+    void slotAlignmentChange( Alignment a );
 
 private:
     QXEmbed  *_embed;
Index: core/container_base.cpp
===================================================================
RCS file: /home/kde/kdebase/kicker/core/container_base.cpp,v
retrieving revision 1.11
diff -u -3 -p -r1.11 container_base.cpp
--- core/container_base.cpp	2002/03/01 14:50:45	1.11
+++ core/container_base.cpp	2002/03/09 18:02:36
@@ -72,6 +72,13 @@ void BaseContainer::slotRemoved()
     config->sync();
 }
 
+void BaseContainer::setAlignment( Alignment a )
+{
+    if( _alignment == a ) return;
+    _alignment = a;
+    emit alignmentChange( a );
+}
+
 QPopupMenu *BaseContainer::reduceMenu(QPopupMenu *menu)
 {
     if (menu->count() != 1)
Index: core/container_base.h
===================================================================
RCS file: /home/kde/kdebase/kicker/core/container_base.h,v
retrieving revision 1.15
diff -u -3 -p -r1.15 container_base.h
--- core/container_base.h	2002/03/01 14:50:45	1.15
+++ core/container_base.h	2002/03/09 18:02:36
@@ -59,6 +59,7 @@ public:
 
     Direction popupDirection() const { return _dir; }
     Orientation orientation() const { return _orient; }
+    Alignment alignment() const { return _alignment; }
 
     void loadConfiguration( KConfigGroup& );
     void saveConfiguration( KConfigGroup&, bool layoutOnly = false ) const;
@@ -85,11 +86,15 @@ public slots:
     virtual void slotSetPopupDirection(Direction d) { _dir = d; }
     virtual void slotSetOrientation(Orientation o) { _orient = o; }
 
+    void setAlignment( Alignment a );
+
 signals:
     void removeme(BaseContainer*);
     void moveme(BaseContainer*);
     void requestSave();
 
+    void alignmentChange( Alignment a );
+
 protected:
     virtual void doLoadConfiguration( KConfigGroup& ) {}
     virtual void doSaveConfiguration( KConfigGroup&, 
@@ -97,6 +102,7 @@ protected:
     
     Direction          _dir;
     Orientation        _orient;
+    Alignment          _alignment;
     float              _fspace;
     QPoint             _moveOffset;
     QString            _aid;
Index: core/container_extension.cpp
===================================================================
RCS file: /home/kde/kdebase/kicker/core/container_extension.cpp,v
retrieving revision 1.41
diff -u -3 -p -r1.41 container_extension.cpp
--- core/container_extension.cpp	2002/03/02 19:59:45	1.41
+++ core/container_extension.cpp	2002/03/09 18:02:36
@@ -164,7 +164,10 @@ InternalExtensionContainer::InternalExte
 
     connect(_extension, SIGNAL(updateLayout()), SLOT(updateLayout()));
 
-    connect(this, SIGNAL(positionChange(Position)), _extension, SLOT(slotSetPosition(Position)));
+    connect( this, SIGNAL(positionChange(Position)),
+             this, SLOT(slotPositionChange(Position)) );
+    connect( this, SIGNAL(alignmentChange(Alignment)),
+             this, SLOT(slotAlignmentChange(Alignment)) );
 }
 
 InternalExtensionContainer::~InternalExtensionContainer()
@@ -195,12 +198,18 @@ QSize InternalExtensionContainer::sizeHi
     return size.boundedTo( maxSize );
 }
 
-void InternalExtensionContainer::slotSetPosition(Position p)
+void InternalExtensionContainer::slotPositionChange(Position p)
 {
     if (!_extension) return;
-    _extension->slotSetPosition((KPanelExtension::Position)(p));
+    _extension->setPosition( (KPanelExtension::Position)p );
 }
 
+void InternalExtensionContainer::slotAlignmentChange( Alignment a )
+{
+    if (!_extension) return;
+    _extension->setAlignment( (KPanelExtension::Alignment)a );
+}
+
 void InternalExtensionContainer::about()
 {
     if (!_extension) return;
@@ -250,6 +259,8 @@ ExternalExtensionContainer::ExternalExte
     process.start(KProcess::DontCare);
 
     connect(this, SIGNAL(positionChange(Position)), SLOT(slotSetPosition(Position)));
+    connect( this, SIGNAL(alignmentChange(Alignment)),
+             this, SLOT(slotAlignmentChange(Alignment)) );
 }
 
 ExternalExtensionContainer::~ExternalExtensionContainer()
@@ -267,6 +278,17 @@ void ExternalExtensionContainer::slotSet
     dataStream << static_cast<int>(p);
 
     kapp->dcopClient()->send( _app, "ExtensionProxy", "setPosition(int)", data );
+}
+
+void ExternalExtensionContainer::slotAlignmentChange( Alignment a )
+{
+    if (!_isdocked) return;
+
+    QByteArray data;
+    QDataStream dataStream( data, IO_WriteOnly );
+    dataStream << static_cast<int>(a);
+
+    kapp->dcopClient()->send( _app, "ExtensionProxy", "setAlignment(int)", data );
 }
 
 void ExternalExtensionContainer::about()
Index: core/container_extension.h
===================================================================
RCS file: /home/kde/kdebase/kicker/core/container_extension.h,v
retrieving revision 1.18
diff -u -3 -p -r1.18 container_extension.h
--- core/container_extension.h	2002/02/27 20:35:51	1.18
+++ core/container_extension.h	2002/03/09 18:02:36
@@ -96,8 +96,9 @@ public:
 protected:
     PanelSettings defaultSettings();
 
-protected slots:
-    void slotSetPosition(Position p);
+private slots:
+   void slotPositionChange( Position p );
+   void slotAlignmentChange( Alignment a );
 
 private:
     KPanelExtension *_extension;
@@ -130,6 +131,9 @@ protected:
 
 protected slots:
     void slotSetPosition(Position p);
+
+private slots:
+   void slotAlignmentChange( Alignment a );
 
 private:
     QXEmbed  *_embed;
Index: core/container_panel.cpp
===================================================================
RCS file: /home/kde/kdebase/kicker/core/container_panel.cpp,v
retrieving revision 1.48
diff -u -3 -p -r1.48 container_panel.cpp
--- core/container_panel.cpp	2002/03/02 19:59:45	1.48
+++ core/container_panel.cpp	2002/03/09 18:02:37
@@ -210,6 +210,7 @@ void PanelContainer::readConfig( KConfig
     _settings.readConfig( config );
 
     emit positionChange( position() );
+    emit alignmentChange( alignment() );
     updateLayout();
 
     if( !_settings._autoHide )
@@ -236,6 +237,7 @@ void PanelContainer::arrange( Position p
 
     if ( a != _settings._alignment ) {
 	_settings._alignment = a;
+	emit alignmentChange( a );
     }
 
     updateLayout();
Index: core/container_panel.h
===================================================================
RCS file: /home/kde/kdebase/kicker/core/container_panel.h,v
retrieving revision 1.20
diff -u -3 -p -r1.20 container_panel.h
--- core/container_panel.h	2002/03/02 19:59:45	1.20
+++ core/container_panel.h	2002/03/09 18:02:37
@@ -94,6 +94,7 @@ public:
 
 signals:
     void positionChange( Position pos );
+    void alignmentChange( Alignment a );
 
 protected:
     void arrange( Position p, Alignment a );
Index: core/containerarea.cpp
===================================================================
RCS file: /home/kde/kdebase/kicker/core/containerarea.cpp,v
retrieving revision 1.114
diff -u -3 -p -r1.114 containerarea.cpp
--- core/containerarea.cpp	2002/03/03 14:26:40	1.114
+++ core/containerarea.cpp	2002/03/09 18:02:38
@@ -1787,6 +1787,13 @@ void ContainerArea::setPosition(Position
         (*it)->slotSetPopupDirection( popupDirection() );
 }
 
+void ContainerArea::setAlignment(Alignment a)
+{
+    BaseContainerListIterator it(_containers);
+    for ( ; it.current(); ++it )
+        (*it)->setAlignment( a );
+}
+
 void ContainerArea::autoScroll()
 {
     if(!_moveAC) return;
Index: core/containerarea.h
===================================================================
RCS file: /home/kde/kdebase/kicker/core/containerarea.h,v
retrieving revision 1.45
diff -u -3 -p -r1.45 containerarea.h
--- core/containerarea.h	2002/03/02 19:59:45	1.45
+++ core/containerarea.h	2002/03/09 18:02:38
@@ -79,6 +79,7 @@ public:
 public slots:
     void setOrientation(Orientation o);
     void setPosition(Position p);
+    void setAlignment(Alignment a);
     void slotLayoutChildren();
     void slotSaveContainerConfig();
 
Index: core/panel.cpp
===================================================================
RCS file: /home/kde/kdebase/kicker/core/panel.cpp,v
retrieving revision 1.95
diff -u -3 -p -r1.95 panel.cpp
--- core/panel.cpp	2002/03/03 23:12:23	1.95
+++ core/panel.cpp	2002/03/09 18:02:38
@@ -82,6 +82,8 @@ Panel::Panel()
     connect(_containerArea, SIGNAL(sizeHintChanged()), SLOT(updateLayout()));
 
     connect(this, SIGNAL(positionChange(Position)), SLOT(slotSetPosition(Position)));
+    connect( this, SIGNAL(alignmentChange(Alignment)),
+             this, SLOT(slotAlignmentChange(Alignment)) );
 
     _opMnu = new PanelOpMenu( this, this );
 }
@@ -200,6 +202,11 @@ void Panel::slotSetPosition( Position p 
     }
     _containerArea->setOrientation(orientation());
     _containerArea->setPosition(position());
+}
+
+void Panel::slotAlignmentChange( Alignment a )
+{
+    _containerArea->setAlignment( a );
 }
 
 void Panel::showPanelMenu( QPoint globalPos )
Index: core/panel.h
===================================================================
RCS file: /home/kde/kdebase/kicker/core/panel.h,v
retrieving revision 1.38
diff -u -3 -p -r1.38 panel.h
--- core/panel.h	2002/03/03 14:44:53	1.38
+++ core/panel.h	2002/03/09 18:02:39
@@ -86,6 +86,7 @@ protected:
 
 protected slots:
     void slotSetPosition( Position p );
+    void slotAlignmentChange( Alignment a );
     void slotResizeRequest( int dx, int dy );
 
 private:
Index: proxy/appletproxy.cpp
===================================================================
RCS file: /home/kde/kdebase/kicker/proxy/appletproxy.cpp,v
retrieving revision 1.18
diff -u -3 -p -r1.18 appletproxy.cpp
--- proxy/appletproxy.cpp	2001/12/29 17:19:14	1.18
+++ proxy/appletproxy.cpp	2002/03/09 18:02:39
@@ -47,6 +47,17 @@ CONNECTION WITH THE SOFTWARE OR THE USE 
 
 #include <X11/Xlib.h>
 
+// FIXME: Ugly, remove when cleaning up
+KPanelApplet::Position directionToPosition( int d )
+{
+    switch( d ) {
+    case 1:   return KPanelApplet::pTop;
+    case 2:   return KPanelApplet::pRight;
+    case 3:   return KPanelApplet::pLeft;
+    default:
+    case 0:   return KPanelApplet::pBottom;
+    }
+}
 
 static KCmdLineOptions options[] =
 {
@@ -270,18 +281,18 @@ bool AppletProxy::process(const QCString
 	    dataStream >> dir;
 
 	    if(_applet) {
-		_applet->slotSetPopupDirection(static_cast<KPanelApplet::Direction>(dir));
+		_applet->setPosition( (KPanelApplet::Position)directionToPosition(dir) );
 	    }
 	    return true;
 	}
-    else if ( fun == "setOrientation(int)" )
+    else if ( fun == "setAlignment(int)" )
 	{
 	    QDataStream dataStream( data, IO_ReadOnly );
-	    int orient;
-	    dataStream >> orient;
+	    int alignment;
+	    dataStream >> alignment;
 
 	    if(_applet) {
-		_applet->slotSetOrientation(static_cast<Qt::Orientation>(orient));
+		_applet->setAlignment( (KPanelApplet::Alignment)alignment );
 	    }
 	    return true;
 	}
Index: proxy/extensionproxy.cpp
===================================================================
RCS file: /home/kde/kdebase/kicker/proxy/extensionproxy.cpp,v
retrieving revision 1.14
diff -u -3 -p -r1.14 extensionproxy.cpp
--- proxy/extensionproxy.cpp	2001/12/29 17:19:14	1.14
+++ proxy/extensionproxy.cpp	2002/03/09 18:02:40
@@ -256,7 +256,18 @@ bool ExtensionProxy::process(const QCStr
 	    dataStream >> pos;
 
 	    if(_extension) {
-		_extension->slotSetPosition(static_cast<KPanelExtension::Position>(pos));
+		_extension->setPosition( (KPanelExtension::Position)pos );
+	    }
+	    return true;
+	}
+    else if ( fun == "setAlignment(int)" )
+	{
+	    QDataStream dataStream( data, IO_ReadOnly );
+	    int alignment;
+	    dataStream >> alignment;
+
+	    if(_extension) {
+		_extension->setAlignment( (KPanelExtension::Alignment)alignment );
 	    }
 	    return true;
 	}


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic