From ae9d3d84c99ab00b3054dab5b035065acac567b4 Mon Sep 17 00:00:00 2001 From: fluxgen Date: Mon, 4 Feb 2002 06:51:15 +0000 Subject: added numObjects --- src/Tab.cc | 103 ++++++++++++++++++++++++++++++------------------------------- src/Tab.hh | 3 +- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/src/Tab.cc b/src/Tab.cc index b6f002b..88524ad 100644 --- a/src/Tab.cc +++ b/src/Tab.cc @@ -13,18 +13,18 @@ // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Tab.cc,v 1.19 2002/02/02 18:20:44 pekdon Exp $ +// $Id: Tab.cc,v 1.20 2002/02/04 06:50:48 fluxgen Exp $ #include "Tab.hh" #ifdef HAVE_CONFIG_H -# include "../config.h" +# include "../config.h" #endif // HAVE_CONFIG_H #include "i18n.hh" @@ -92,7 +92,7 @@ Tab::~Tab() { //------------------------------------------------- void Tab::createTabWindow() { unsigned long attrib_mask = CWBackPixmap | CWBackPixel | CWBorderPixel | - CWColormap | CWOverrideRedirect | CWEventMask; + CWColormap | CWOverrideRedirect | CWEventMask; XSetWindowAttributes attrib; attrib.background_pixmap = None; attrib.background_pixel = attrib.border_pixel = @@ -152,11 +152,10 @@ void Tab::focus() { //----------------------------------------- void Tab::raise() { //get first tab - Tab *first = 0; - first = getFirst(this); + Tab *tab = 0; //raise tabs - for (; first!=0; first = first->m_next) - m_win->getScreen()->raiseWindows(&first->m_tabwin, 1); + for (tab = getFirst(this); tab!=0; tab = tab->m_next) + m_win->getScreen()->raiseWindows(&tab->m_tabwin, 1); } //-------------- lower -------------------- @@ -165,9 +164,9 @@ void Tab::raise() { //----------------------------------------- void Tab::lower() { Tab *current = this; - FluxboxWindow *win = 0; //convinence + FluxboxWindow *win = 0; //convenience //this have to be done in the correct order, otherwise we'll switch the window - //beeing ontop in the group + //being ontop in the group do { XLowerWindow(m_display, current->m_tabwin); //lower tabwin and tabs window win = current->getWindow(); @@ -191,42 +190,43 @@ void Tab::loadTheme() { Pixmap tmp = m_focus_pm; BTexture *texture = &(m_win->getScreen()->getWindowStyle()->tab.l_focus); - if (texture->getTexture() & BImage::PARENTRELATIVE ) { + if (texture->getTexture() & BImage::PARENTRELATIVE ) { BTexture *pt = &(m_win->getScreen()->getWindowStyle()->tab.t_focus); if (pt->getTexture() == (BImage::FLAT | BImage::SOLID)) { - m_focus_pm = None; - m_focus_pixel = pt->getColor()->getPixel(); - } else - m_focus_pm = - image_ctrl->renderImage(m_size_w, m_size_h, pt); - if (tmp) image_ctrl->removeImage(tmp); - + m_focus_pm = None; + m_focus_pixel = pt->getColor()->getPixel(); + } else + m_focus_pm = + image_ctrl->renderImage(m_size_w, m_size_h, pt); + + if (tmp) image_ctrl->removeImage(tmp); + } else { if (texture->getTexture() == (BImage::FLAT | BImage::SOLID)) { - m_focus_pm = None; - m_focus_pixel = texture->getColor()->getPixel(); - } else - m_focus_pm = - image_ctrl->renderImage(m_size_w, m_size_h, texture); - if (tmp) image_ctrl->removeImage(tmp); + m_focus_pm = None; + m_focus_pixel = texture->getColor()->getPixel(); + } else + m_focus_pm = + image_ctrl->renderImage(m_size_w, m_size_h, texture); + if (tmp) image_ctrl->removeImage(tmp); } - + tmp = m_unfocus_pm; texture = &(m_win->getScreen()->getWindowStyle()->tab.l_unfocus); - + if (texture->getTexture() & BImage::PARENTRELATIVE ) { BTexture *pt = &(m_win->getScreen()->getWindowStyle()->tab.t_unfocus); if (pt->getTexture() == (BImage::FLAT | BImage::SOLID)) { m_unfocus_pm = None; m_unfocus_pixel = pt->getColor()->getPixel(); - } else + } else m_unfocus_pm = image_ctrl->renderImage(m_size_w, m_size_h, pt); } else { if (texture->getTexture() == (BImage::FLAT | BImage::SOLID)) { m_unfocus_pm = None; m_unfocus_pixel = texture->getColor()->getPixel(); - } else + } else m_unfocus_pm = image_ctrl->renderImage(m_size_w, m_size_h, texture); } @@ -279,14 +279,14 @@ void Tab::stick() { //now do stick for all windows in the list for (tab = getFirst(this); tab != 0; tab = tab->m_next) { - FluxboxWindow *win = tab->m_win; //just for convenient + FluxboxWindow *win = tab->m_win; //just for convenience if (win->isStuck()) { win->blackbox_attrib.flags ^= BaseDisplay::ATTRIB_OMNIPRESENT; win->blackbox_attrib.attrib ^= BaseDisplay::ATTRIB_OMNIPRESENT; win->stuck = false; if (!win->isIconic()) - win->getScreen()->reassociateWindow(win, -1, true); - + win->getScreen()->reassociateWindow(win, -1, true); + } else { win->stuck = true; win->blackbox_attrib.flags |= BaseDisplay::ATTRIB_OMNIPRESENT; @@ -351,7 +351,7 @@ void Tab::draw(bool pressed) { unsigned int tabtext_w; GC gc = ((m_win->isFocused()) ? m_win->getScreen()->getWindowStyle()->tab.l_text_focus_gc : - m_win->getScreen()->getWindowStyle()->tab.l_text_unfocus_gc); + m_win->getScreen()->getWindowStyle()->tab.l_text_unfocus_gc); // Different routines for drawing rotated text if ((m_win->getScreen()->getTabPlacement() == PLEFT || @@ -543,7 +543,7 @@ void Tab::calcIncrease(void) { Tab *tab; int inc_x = 0, inc_y = 0; - unsigned int tabs = 0, i = 0; + unsigned int i = 0, tabs = numObjects(); if (m_win->getScreen()->getTabPlacement() == PTOP || m_win->getScreen()->getTabPlacement() == PBOTTOM || @@ -588,9 +588,7 @@ void Tab::calcIncrease(void) { } } - for (tab = getFirst(this); tab!=0; tab = tab->m_next, tabs++); - - for (tab = getFirst(this); tab!=0; tab = tab->m_next, i++){ + for (tab = getFirst(this); tab!=0; tab = tab->m_next, i++) { //TODO: move this out from here? if ((m_win->getScreen()->getTabPlacement() == PTOP || @@ -672,7 +670,7 @@ void Tab::buttonReleaseEvent(XButtonEvent *be) { m_win->getScreen()->getRootWindow(), be->x_root, be->y_root, &dest_x, &dest_y, &child)) { - Tab *tab = Fluxbox::instance()->searchTab(child); + Tab *tab = Fluxbox::instance()->searchTab(child); FluxboxWindow *win = Fluxbox::instance()->searchWindow(child); //search tablist for a tabwindow if ( (tab!=0) || (m_win->getScreen()->isSloppyWindowGrouping() && @@ -1067,16 +1065,23 @@ unsigned int Tab::calcRelativeWidth() { return ((m_win->getWidth() + m_win->getScreen()->getBorderWidth2x())/num); } +//--------------- numObjects ------------------- +// Returns the number of objects in +// the TabGroup. +//----------------------------------------------- +unsigned int Tab::numObjects() { + unsigned int num = 0; + for (Tab *tab = getFirst(this); tab != 0; tab = tab->m_next, num++); + return num; +} + //------------- calcRelativeHeight ------- // Returns: Calculated height for relative // alignment //---------------------------------------- unsigned int Tab::calcRelativeHeight() { - unsigned int num=0; - //calculate num objs in list (extract this to a function?) - for (Tab *first=getFirst(this); first!=0; first=first->m_next, num++); - - return ((m_win->getHeight() + m_win->getScreen()->getBorderWidth2x())/num); + return ((m_win->getHeight() + + m_win->getScreen()->getBorderWidth2x())/numObjects()); } //------------- calcCenterXPos ----------- @@ -1084,11 +1089,8 @@ unsigned int Tab::calcRelativeHeight() { // centered alignment //---------------------------------------- unsigned int Tab::calcCenterXPos() { - unsigned int num=0; - //calculate num objs in list (extract this to a function?) - for (Tab *first=getFirst(this); first!=0; first=first->m_next, num++); - - return (m_win->getXFrame() + ((m_win->getWidth() - (m_size_w * num)) / 2)); + return (m_win->getXFrame() + ((m_win->getWidth() - + (m_size_w * numObjects())) / 2)); } //------------- calcCenterYPos ----------- @@ -1096,11 +1098,8 @@ unsigned int Tab::calcCenterXPos() { // centered alignment //---------------------------------------- unsigned int Tab::calcCenterYPos() { - unsigned int num=0; - //calculate num objs in list (extract this to a function?) - for (Tab *first=getFirst(this); first!=0; first=first->m_next, num++); - - return (m_win->getYFrame() + ((m_win->getHeight() - (m_size_h * num)) / 2)); + return (m_win->getYFrame() + ((m_win->getHeight() - + (m_size_h * numObjects())) / 2)); } diff --git a/src/Tab.hh b/src/Tab.hh index 2784365..4f3af12 100644 --- a/src/Tab.hh +++ b/src/Tab.hh @@ -19,7 +19,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Tab.hh,v 1.9 2002/01/27 12:52:02 fluxgen Exp $ +// $Id: Tab.hh,v 1.10 2002/02/04 06:51:15 fluxgen Exp $ #ifndef _TAB_HH_ #define _TAB_HH_ @@ -100,6 +100,7 @@ private: int setPositionLRAlignHelper(Alignment align); void setTabWidth(unsigned int w); void setTabHeight(unsigned int h); + unsigned int numObjects(); unsigned int calcRelativeWidth(); unsigned int calcRelativeHeight(); unsigned int calcCenterXPos(); -- cgit v0.11.2