[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: Re: Patch for the B2 style
From: mosfet <mosfet () mandrakesoft ! com>
Date: 2000-09-29 2:57:41
[Download RAW message or body]
I'm updating and recompiling now, then give it a go.
Antonio Larrosa wrote:
>
> mosfet wrote:
> >
> >
> > You may want to check out the default style, as I did a much simpler way
> > to do the same thing there.
>
> Ok, I thought using a layout was a no-no. It's much better this way.
>
> What do you think ? (I'm not sure if the right border in the titlebar is ok,
> I think it's too thin, so please test it)
>
> Greetings,
>
> --
> Antonio Larrosa Jimenez
> KDE Core developer
> antonio@larrosa.org larrosa@kde.org
> http://www.larrosa.org
> KDE - The development framework of the future, today.
>
> ------------------------------------------------------------------------
> Index: b2client.cpp
> ===================================================================
> RCS file: /home/kde/kdebase/kwin/clients/b2/b2client.cpp,v
> retrieving revision 1.10
> diff -u -r1.10 b2client.cpp
> --- b2client.cpp 2000/09/25 15:30:50 1.10
> +++ b2client.cpp 2000/09/28 17:02:26
> @@ -302,10 +302,12 @@
> p.setPen(options->color(Options::Font, true));
> p.setFont(options->font(true));
>
> - t.setX(client->providesContextHelp() ?
> - client->button[B2Client::BtnHelp]->x()+17 :
> - client->button[B2Client::BtnSticky]->x()+17);
> - t.setRight(client->button[B2Client::BtnIconify]->x()-1);
> + QLayoutIterator it=layout()->iterator();
> + ++it;
> + ++it;
> + ++it;
> + t=(++it)->geometry();
> +
> p.drawText(t, AlignLeft | AlignVCenter, client->caption());
> p.end();
>
> @@ -343,11 +345,13 @@
> // and the caption
> p.setPen(options->color(Options::Font, false));
> p.setFont(options->font(false));
> +
> + QLayoutIterator it=layout()->iterator();
> + ++it;
> + ++it;
> + ++it;
> + t=(++it)->geometry();
>
> - t.setX(client->providesContextHelp() ?
> - client->button[B2Client::BtnHelp]->x()+17 :
> - client->button[B2Client::BtnSticky]->x()+17);
> - t.setRight(client->button[B2Client::BtnIconify]->x()-1);
> p.drawText(t, AlignLeft | AlignVCenter, client->caption());
> }
> }
> @@ -408,7 +412,7 @@
>
> g->addColSpacing(0, 4);
>
> - g->addColSpacing(1, providesContextHelp() ? 102 : 85);
> + g->addColSpacing(1, 16);
>
> g->setColStretch(2, 1);
>
> @@ -420,18 +424,34 @@
> g->addRowSpacing(0, 20);
>
> titlebar = new B2Titlebar(this);
> - int i;
> + titlebar->setMinimumWidth(16);
> + titlebar->setFixedHeight(20);
> +
> + int i;
> for(i=0; i < 6; ++i){
> button[i] = new B2Button(this, titlebar/*this*/);
> button[i]->setFixedSize(16, 16);
> }
> -
> +
> + QHBoxLayout *titleLayout=new QHBoxLayout(titlebar);
> + titleLayout->setSpacing(1);
> +
> + titleLayout->addSpacing(3);
> + titleLayout->addWidget(button[BtnMenu]);
> + titleLayout->addWidget(button[BtnSticky]);
> + titleLayout->addWidget(button[BtnHelp]);
> + titleLayout->addStretch(1);
> + titleLayout->addWidget(button[BtnIconify]);
> + titleLayout->addWidget(button[BtnMax]);
> + titleLayout->addWidget(button[BtnClose]);
> + titleLayout->addSpacing(3);
> +
> button[BtnSticky]->setToggle();
> button[BtnSticky]->setDown(isSticky());
> button[BtnMenu]->setUseMiniIcon();
>
> if(!providesContextHelp())
> - button[5]->hide();
> + button[BtnHelp]->hide();
>
> button[BtnMenu]->setPixmaps(aMenuPix, aMenuPixDown, iMenuPix,
> iMenuPixDown);
> @@ -472,11 +492,62 @@
> void B2Client::resizeEvent( QResizeEvent* e)
> {
> Client::resizeEvent( e );
> +
> + int sizeProblem = 0;
> +
> + if (width() < 45) sizeProblem = 3;
> + else if (width() < 70) sizeProblem = 2;
> + else if (width() < 120) sizeProblem = 1;
> +
> + switch (sizeProblem) {
> +
> + case 1:
> + button[BtnMenu] ->show();
> + button[BtnClose] ->show();
> + button[BtnSticky] ->hide();
> + button[BtnIconify] ->show();
> + button[BtnMax] ->hide();
> + button[BtnHelp] ->hide();
> + break;
> +
> + case 2:
> + button[BtnMenu] ->show();
> + button[BtnClose] ->show();
> + button[BtnSticky] ->hide();
> + button[BtnIconify] ->hide();
> + button[BtnMax] ->hide();
> + button[BtnHelp] ->hide();
> + break;
> +
> + case 3:
> + button[BtnMenu] ->hide();
> + button[BtnClose] ->hide();
> + button[BtnSticky] ->hide();
> + button[BtnIconify] ->hide();
> + button[BtnMax] ->hide();
> + button[BtnHelp] ->hide();
> + break;
> +
> + case 0:
> + default:
> + button[BtnMenu] ->show();
> + button[BtnClose] ->show();
> + button[BtnSticky] ->show();
> + button[BtnIconify] ->show();
> + button[BtnMax] ->show();
> + if(providesContextHelp())
> + button[BtnHelp]->show();
> + break;
> + }
> +
> + titlebar->layout()->activate();
> +
> positionButtons();
> /* may be the resize cuted off some space occupied by titlebar, which
> was moved, so instead of reducing it, we first try to move it */
> titleMoveAbs(bar_x_ofs);
> doShape();
> +
> /*
> What does this? (MM)
> if ( isVisibleToTLW() && !testWFlags( WNorthWestGravity )) {
> @@ -898,28 +969,16 @@
> QFontMetrics fm(options->font(isActive()));
>
> int textLen = fm.width(caption());
> - //int xpos = bar_x_ofs+4;
> - int xpos = 4;
> - button[BtnMenu]->move(xpos, 2);
> - xpos+=17;
> - button[BtnSticky]->move(xpos, 2);
> - xpos+=17;
> - if(providesContextHelp()){
> - button[BtnHelp]->move(xpos, 2);
> - xpos+=17;
> - }
> + QLayoutIterator it=titlebar->layout()->iterator();
> + ++it;
> + ++it;
> + ++it;
>
> - if(xpos + textLen+52 < width()-3)
> - xpos += textLen+1;
> - else
> - xpos = width()-3-52;
> + int titleWidth=titlebar->width()-(++it)->geometry().width()+textLen+2;
> +
> + if( titleWidth > width()) titleWidth=width();
>
> - button[BtnIconify]->move(xpos, 2);
> - xpos+=17;
> - button[BtnMax]->move(xpos, 2);
> - xpos+=17;
> - button[BtnClose]->move(xpos, 2);
> - titlebar->setFixedSize(xpos+17+4,20);
> + titlebar->resize(titleWidth,20);
> titlebar->move(bar_x_ofs, 0);
> }
>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic